| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using Content.Server.Administration;
- using Content.Shared.Administration;
- using Content.Shared.EntityList;
- using Robust.Shared.Console;
- using Robust.Shared.Prototypes;
- namespace Content.Server.EntityList
- {
- [AdminCommand(AdminFlags.Spawn)]
- public sealed class SpawnEntityListCommand : IConsoleCommand
- {
- public string Command => "spawnentitylist";
- public string Description => "Spawns a list of entities around you";
- public string Help => $"Usage: {Command} <entityListPrototypeId>";
- public void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- if (args.Length != 1)
- {
- shell.WriteError($"Invalid arguments.\n{Help}");
- return;
- }
- if (shell.Player is not { } player)
- {
- shell.WriteError(Loc.GetString("shell-cannot-run-command-from-server"));
- return;
- }
- if (player.AttachedEntity is not {} attached)
- {
- shell.WriteError(Loc.GetString("shell-only-players-can-run-this-command"));
- return;
- }
- var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
- if (!prototypeManager.TryIndex(args[0], out EntityListPrototype? prototype))
- {
- shell.WriteError($"No {nameof(EntityListPrototype)} found with id {args[0]}");
- return;
- }
- var entityManager = IoCManager.Resolve<IEntityManager>();
- var i = 0;
- foreach (var entity in prototype.Entities(prototypeManager))
- {
- entityManager.SpawnEntity(entity.ID, entityManager.GetComponent<TransformComponent>(attached).Coordinates);
- i++;
- }
- shell.WriteLine($"Spawned {i} entities.");
- }
- }
- }
|