* stable * sprite * yes! * LOCATOR TRANSLATION MISSING * finally * stable2 * stable * stable? * FIS * Nerfs * works * Трек болгарыча и время призыва теперь 3 минуты * f * Update modifier_sets.yml * Барьер больше не даёт 5 рун металла, ибо почему он должен?
61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
using Content.Server._Sunrise.BloodCult.GameRule;
|
|
using Content.Server.Administration;
|
|
using Content.Shared.Administration;
|
|
using Robust.Shared.Console;
|
|
using Robust.Server.Player;
|
|
|
|
namespace Content.Server._Sunrise.BloodCult.Commands;
|
|
|
|
[AdminCommand(AdminFlags.Admin)]
|
|
public sealed class RemoveCultTargetCommand : IConsoleCommand
|
|
{
|
|
[Dependency] private readonly IEntityManager _entManager = default!;
|
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
|
|
|
public string Command => "bloodcult_removetarget";
|
|
public string Description => Loc.GetString("bloodcult-removetarget-description");
|
|
public string Help => Loc.GetString("bloodcult-removetarget-help");
|
|
|
|
public void Execute(IConsoleShell shell, string argStr, string[] args)
|
|
{
|
|
if (args.Length != 1)
|
|
{
|
|
shell.WriteError(Loc.GetString("bloodcult-removetarget-usage"));
|
|
return;
|
|
}
|
|
|
|
var ckey = args[0];
|
|
if (!_playerManager.TryGetSessionByUsername(ckey, out var session) || session.AttachedEntity == null)
|
|
{
|
|
shell.WriteError(Loc.GetString("bloodcult-removetarget-player-not-found", ("ckey", ckey)));
|
|
return;
|
|
}
|
|
|
|
var entityUid = session.AttachedEntity.Value;
|
|
|
|
if (!_entManager.EntitySysManager.TryGetEntitySystem<BloodCultRuleSystem>(out var cultRuleSystem))
|
|
{
|
|
shell.WriteError(Loc.GetString("bloodcult-removetarget-system-not-found"));
|
|
return;
|
|
}
|
|
|
|
var rule = cultRuleSystem.GetRule();
|
|
if (rule == null)
|
|
{
|
|
shell.WriteError(Loc.GetString("bloodcult-removetarget-rule-not-found"));
|
|
return;
|
|
}
|
|
|
|
// Use the system method to remove target properly
|
|
if (!cultRuleSystem.RemoveSpecificCultTarget(entityUid, rule))
|
|
{
|
|
shell.WriteError(Loc.GetString("bloodcult-removetarget-not-target"));
|
|
return;
|
|
}
|
|
|
|
var targetName = _entManager.TryGetComponent<MetaDataComponent>(entityUid, out var meta)
|
|
? meta.EntityName
|
|
: Loc.GetString("bloodcult-unknown-entity");
|
|
shell.WriteLine(Loc.GetString("bloodcult-removetarget-success", ("name", targetName)));
|
|
}
|
|
}
|