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}`