Add delete entities with prototype id command (#1983)
* Add delete entities with prototype id command * Add command to groups * Add feedback and lowercasing
This commit is contained in:
39
Content.Server/Administration/DeleteEntitiesWithId.cs
Normal file
39
Content.Server/Administration/DeleteEntitiesWithId.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
#nullable enable
|
||||
using Robust.Server.Interfaces.Console;
|
||||
using Robust.Server.Interfaces.Player;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
|
||||
namespace Content.Server.Administration
|
||||
{
|
||||
public class DeleteEntitiesWithId : IClientCommand
|
||||
{
|
||||
public string Command => "deleteewi";
|
||||
public string Description => "Deletes entities with the specified prototype ID.";
|
||||
public string Help => $"Usage: {Command} <prototypeID>";
|
||||
|
||||
public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
{
|
||||
shell.SendText(player, Help);
|
||||
return;
|
||||
}
|
||||
|
||||
var id = args[0].ToLower();
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var query = new PredicateEntityQuery(e => e.Prototype?.ID.ToLower() == id);
|
||||
var entities = entityManager.GetEntities(query);
|
||||
var i = 0;
|
||||
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
entity.Delete();
|
||||
i++;
|
||||
}
|
||||
|
||||
shell.SendText(player, $"Deleted all entities with id {id}. Occurrences: {i}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -105,6 +105,7 @@
|
||||
- adddamageflag
|
||||
- removedamageflag
|
||||
- godmode
|
||||
- deleteewi
|
||||
CanViewVar: true
|
||||
CanAdminPlace: true
|
||||
CanAdminMenu: true
|
||||
@@ -203,6 +204,7 @@
|
||||
- adddamageflag
|
||||
- removedamageflag
|
||||
- godmode
|
||||
- deleteewi
|
||||
CanViewVar: true
|
||||
CanAdminPlace: true
|
||||
CanScript: true
|
||||
|
||||
Reference in New Issue
Block a user