using Content.Shared.Administration;
using Robust.Shared.Console;
-namespace Content.Server.Administration.Commands
-{
- [AdminCommand(AdminFlags.Moderator)]
- sealed class DSay : IConsoleCommand
- {
- [Dependency] private readonly IEntityManager _e = default!;
-
- public string Command => "dsay";
+namespace Content.Server.Administration.Commands;
- public string Description => Loc.GetString("dsay-command-description");
+[AdminCommand(AdminFlags.Moderator)]
+public sealed class DsayCommand : LocalizedEntityCommands
+{
+ [Dependency] private readonly ChatSystem _chatSystem = default!;
- public string Help => Loc.GetString("dsay-command-help-text", ("command", Command));
+ public override string Command => "dsay";
- public void Execute(IConsoleShell shell, string argStr, string[] args)
+ public override void Execute(IConsoleShell shell, string argStr, string[] args)
+ {
+ if (shell.Player is not { } player)
{
- if (shell.Player is not { } player)
- {
- shell.WriteError(Loc.GetString("shell-cannot-run-command-from-server"));
- return;
- }
+ shell.WriteError(Loc.GetString("shell-cannot-run-command-from-server"));
+ return;
+ }
- if (player.AttachedEntity is not { Valid: true } entity)
- return;
+ if (player.AttachedEntity is not { Valid: true } entity)
+ {
+ shell.WriteError(Loc.GetString("shell-must-be-attached-to-entity"));
+ return;
+ }
- if (args.Length < 1)
- return;
+ if (args.Length < 1)
+ return;
- var message = string.Join(" ", args).Trim();
- if (string.IsNullOrEmpty(message))
- return;
+ var message = string.Join(" ", args).Trim();
+ if (string.IsNullOrEmpty(message))
+ return;
- var chat = _e.System<ChatSystem>();
- chat.TrySendInGameOOCMessage(entity, message, InGameOOCChatType.Dead, false, shell, player);
- }
+ _chatSystem.TrySendInGameOOCMessage(entity, message, InGameOOCChatType.Dead, false, shell, player);
}
}
namespace Content.Server.Administration.Commands;
[AdminCommand(AdminFlags.Debug)]
-public sealed class DirtyCommand : IConsoleCommand
+public sealed class DirtyCommand : LocalizedEntityCommands
{
- [Dependency] private readonly IEntityManager _entManager = default!;
+ public override string Command => "dirty";
- public string Command => "dirty";
- public string Description => "Marks all components on an entity as dirty, if not specified, dirties everything";
- public string Help => $"Usage: {Command} [entityUid]";
-
- public async void Execute(IConsoleShell shell, string argStr, string[] args)
+ public override async void Execute(IConsoleShell shell, string argStr, string[] args)
{
switch (args.Length)
{
case 0:
- foreach (var entity in _entManager.GetEntities())
+ foreach (var entity in EntityManager.GetEntities())
{
- DirtyAll(_entManager, entity);
+ DirtyAll(entity);
}
break;
case 1:
shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number"));
return;
}
- DirtyAll(_entManager, _entManager.GetEntity(parsedTarget));
+ DirtyAll(EntityManager.GetEntity(parsedTarget));
break;
default:
shell.WriteLine(Loc.GetString("shell-wrong-arguments-number"));
}
}
- private static void DirtyAll(IEntityManager manager, EntityUid entityUid)
+ private void DirtyAll(EntityUid entityUid)
{
- foreach (var component in manager.GetNetComponents(entityUid))
+ foreach (var component in EntityManager.GetNetComponents(entityUid))
{
- manager.Dirty(entityUid, component.component);
+ EntityManager.Dirty(entityUid, component.component);
}
}
}
namespace Content.Server.Administration.Commands;
[AdminCommand(AdminFlags.Admin)]
-public sealed class FollowCommand : IConsoleCommand
+public sealed class FollowCommand : LocalizedEntityCommands
{
- [Dependency] private readonly IEntityManager _entManager = default!;
+ [Dependency] private readonly FollowerSystem _followerSystem = default!;
- public string Command => "follow";
- public string Description => Loc.GetString("follow-command-description");
- public string Help => Loc.GetString("follow-command-help");
+ public override string Command => "follow";
- public void Execute(IConsoleShell shell, string argStr, string[] args)
+ public override void Execute(IConsoleShell shell, string argStr, string[] args)
{
if (shell.Player is not { } player)
{
return;
}
- var entity = args[0];
- if (NetEntity.TryParse(entity, out var uidNet) && _entManager.TryGetEntity(uidNet, out var uid))
- {
- _entManager.System<FollowerSystem>().StartFollowingEntity(playerEntity, uid.Value);
- }
+ if (NetEntity.TryParse(args[0], out var uidNet) && EntityManager.TryGetEntity(uidNet, out var uid))
+ _followerSystem.StartFollowingEntity(playerEntity, uid.Value);
}
}
+++ /dev/null
-dsay-command-description = Sends a message to deadchat as an admin
-dsay-command-help-text = Usage: {$command} <message>
\ No newline at end of file
+++ /dev/null
-follow-command-description = Makes you begin following an entity
-follow-command-help = Usage: follow [netEntity]
\ No newline at end of file
--- /dev/null
+cmd-dirty-desc = Marks all components on an entity as dirty. If not specified, dirties everything.
+cmd-dirty-help = Usage: dirty [entityUid]
--- /dev/null
+cmd-dsay-desc = Sends a message to deadchat as an admin.
+cmd-dsay-help = Usage: dsay <message>
--- /dev/null
+cmd-follow-desc = Makes you begin following an entity.
+cmd-follow-help = Usage: follow [netEntity]