From c1eb319bdac73b4c332a3f8130ffa32f7e7ed438 Mon Sep 17 00:00:00 2001 From: Mervill Date: Mon, 5 Aug 2024 01:12:07 -0700 Subject: [PATCH] Refactor the `hungry` debug command to be in line with `thirsty` (#30591) refactor the hungry debug command to be in line with thirsty Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> --- Content.Server/Nutrition/Hungry.cs | 57 +++++++++---------- .../en-US/nutrition/nutrition-commands.ftl | 2 + 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/Content.Server/Nutrition/Hungry.cs b/Content.Server/Nutrition/Hungry.cs index ae68dcd2fd..ce5e14ce09 100644 --- a/Content.Server/Nutrition/Hungry.cs +++ b/Content.Server/Nutrition/Hungry.cs @@ -4,40 +4,35 @@ using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.EntitySystems; using Robust.Shared.Console; -namespace Content.Server.Nutrition +namespace Content.Server.Nutrition; + +[AdminCommand(AdminFlags.Debug)] +public sealed class Hungry : LocalizedEntityCommands { - [AdminCommand(AdminFlags.Debug)] - public sealed class Hungry : IConsoleCommand + public override string Command => "hungry"; + + public override void Execute(IConsoleShell shell, string argStr, string[] args) { - [Dependency] private readonly IEntityManager _entities = default!; - - public string Command => "hungry"; - public string Description => "Makes you hungry."; - public string Help => $"{Command}"; - - public void Execute(IConsoleShell shell, string argStr, string[] args) + var player = shell.Player; + if (player == null) { - var player = shell.Player; - if (player == null) - { - shell.WriteLine("You cannot use this command unless you are a player."); - return; - } - - if (player.AttachedEntity is not {Valid: true} playerEntity) - { - shell.WriteLine("You cannot use this command without an entity."); - return; - } - - if (!_entities.TryGetComponent(playerEntity, out HungerComponent? hunger)) - { - shell.WriteLine($"Your entity does not have a {nameof(HungerComponent)} component."); - return; - } - - var hungryThreshold = hunger.Thresholds[HungerThreshold.Starving]; - _entities.System().SetHunger(playerEntity, hungryThreshold, hunger); + shell.WriteError(Loc.GetString("cmd-nutrition-error-player")); + return; } + + if (player.AttachedEntity is not {Valid: true} playerEntity) + { + shell.WriteError(Loc.GetString("cmd-nutrition-error-entity")); + return; + } + + if (!EntityManager.TryGetComponent(playerEntity, out HungerComponent? hunger)) + { + shell.WriteError(Loc.GetString("cmd-nutrition-error-component", ("comp", nameof(HungerComponent)))); + return; + } + + var hungryThreshold = hunger.Thresholds[HungerThreshold.Starving]; + EntityManager.System().SetHunger(playerEntity, hungryThreshold, hunger); } } diff --git a/Resources/Locale/en-US/nutrition/nutrition-commands.ftl b/Resources/Locale/en-US/nutrition/nutrition-commands.ftl index d441026456..2b1259e9b2 100644 --- a/Resources/Locale/en-US/nutrition/nutrition-commands.ftl +++ b/Resources/Locale/en-US/nutrition/nutrition-commands.ftl @@ -2,6 +2,8 @@ cmd-nutrition-error-player = You cannot use this command unless you are a player cmd-nutrition-error-entity = You cannot use this command without an entity. cmd-nutrition-error-component = Your entity does not have a {$comp} component. +cmd-hungry-desc = makes you hungry +cmd-hungry-help = sets your hungry level to starving cmd-setnutrit-desc = modify hunger and thirst cmd-setnutrit-help = set your hunger or thirst to one of the built-in thresholds cmd-setnutrit-error-invalid-threshold = invalid {$thresholdType} `{$thresholdString}`