]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Follow command and ahelp menu follow (#24142)
authorLankLTE <135308300+LankLTE@users.noreply.github.com>
Wed, 17 Jan 2024 01:26:14 +0000 (17:26 -0800)
committerGitHub <noreply@github.com>
Wed, 17 Jan 2024 01:26:14 +0000 (17:26 -0800)
* Command & ahelp rename

* Reviews

* remove tpto

Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml
Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs
Content.Server/Administration/Commands/FollowCommand.cs [new file with mode: 0644]
Resources/Locale/en-US/administration/commands/follow-command.ftl [new file with mode: 0644]
Resources/Locale/en-US/administration/ui/actions.ftl

index 28b55f987f3b8040572bb33da9abd5fe77033a76..e5269c027a9dce2ae71a83875edad2978750ff2a 100644 (file)
@@ -14,7 +14,7 @@
                     <Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" StyleClasses="OpenBoth" />
                     <Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
                     <Button Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" StyleClasses="OpenBoth" />
-                    <Button Visible="False" Name="Teleport" Text="{Loc 'admin-player-actions-teleport'}" StyleClasses="OpenLeft" />
+                    <Button Visible="False" Name="Follow" Text="{Loc 'admin-player-actions-follow'}" StyleClasses="OpenLeft" />
                 </BoxContainer>
             </BoxContainer>
         </SplitContainer>
index 90dc88e5b1568d07f1b869a241f6637816ec7831..af977f763c6c05a744f14bada161b76331e52b01 100644 (file)
@@ -138,10 +138,10 @@ namespace Content.Client.Administration.UI.Bwoink
                     _console.ExecuteCommand($"kick \"{_currentPlayer.Username}\"");
             };
 
-            Teleport.OnPressed += _ =>
+            Follow.OnPressed += _ =>
             {
                 if (_currentPlayer is not null)
-                    _console.ExecuteCommand($"tpto \"{_currentPlayer.Username}\"");
+                    _console.ExecuteCommand($"follow \"{_currentPlayer.NetEntity}\"");
             };
 
             Respawn.OnPressed += _ =>
@@ -204,8 +204,8 @@ namespace Content.Client.Administration.UI.Bwoink
             Respawn.Visible = _adminManager.CanCommand("respawn");
             Respawn.Disabled = !Respawn.Visible || disabled;
 
-            Teleport.Visible = _adminManager.CanCommand("tpto");
-            Teleport.Disabled = !Teleport.Visible || disabled;
+            Follow.Visible = _adminManager.CanCommand("follow");
+            Follow.Disabled = !Follow.Visible || disabled;
         }
 
         private string FormatTabTitle(ItemList.Item li, PlayerInfo? pl = default)
diff --git a/Content.Server/Administration/Commands/FollowCommand.cs b/Content.Server/Administration/Commands/FollowCommand.cs
new file mode 100644 (file)
index 0000000..1ced6cf
--- /dev/null
@@ -0,0 +1,44 @@
+using Content.Shared.Administration;
+using Content.Shared.Follower;
+using Robust.Shared.Console;
+using Robust.Shared.Enums;
+
+namespace Content.Server.Administration.Commands;
+
+[AdminCommand(AdminFlags.Admin)]
+public sealed class FollowCommand : IConsoleCommand
+{
+    [Dependency] private readonly IEntityManager _entManager = default!;
+
+    public string Command => "follow";
+    public string Description => Loc.GetString("add-uplink-command-description");
+    public string Help => Loc.GetString("add-uplink-command-help");
+
+    public void Execute(IConsoleShell shell, string argStr, string[] args)
+    {
+        var player = shell.Player;
+        if (player == null)
+        {
+            shell.WriteError(Loc.GetString("shell-only-players-can-run-this-command"));
+            return;
+        }
+
+        if (args.Length != 1)
+        {
+            shell.WriteError(Loc.GetString("shell-need-exactly-one-argument"));
+            return;
+        }
+
+        if (player.Status != SessionStatus.InGame || player.AttachedEntity is not { Valid: true } playerEntity)
+        {
+            shell.WriteError(Loc.GetString("shell-must-be-attached-to-entity"));
+            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);
+        }
+    }
+}
diff --git a/Resources/Locale/en-US/administration/commands/follow-command.ftl b/Resources/Locale/en-US/administration/commands/follow-command.ftl
new file mode 100644 (file)
index 0000000..3ef5fde
--- /dev/null
@@ -0,0 +1,2 @@
+follow-command-description = Makes you begin following an entity
+follow-command-help = Usage: follow [netEntity]
\ No newline at end of file
index 0433a724c1713754614afdc84fa2024931e89060..b067774d0ae1dd5817518340df744b381dc89779 100644 (file)
@@ -8,5 +8,5 @@ admin-player-actions-spawn = Spawn here
 admin-player-spawn-failed = Failed to find valid coordinates
 
 admin-player-actions-clone = Clone
-admin-player-actions-teleport = Teleport To
+admin-player-actions-follow = Follow
 admin-player-actions-confirm = Are you sure?