using Content.Shared._DV.Administration.Components; using Content.Shared.Administration.Managers; using Content.Shared.Follower; using Content.Shared.Follower.Components; namespace Content.Shared._DV.Administration.EntitySystems; public sealed class UnorbitableSystem : EntitySystem { [Dependency] private readonly FollowerSystem _followerSystem = default!; [Dependency] private readonly ISharedAdminManager _admin = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnInit); } private void OnInit(Entity ent, ref ComponentInit args) { if (!HasComp(ent)) return; _followerSystem.StopAllFollowers(ent); } public bool CanFollow(EntityUid follower, EntityUid target) { if (TryComp(target, out var unorbitable)) { return unorbitable.AllowAdmins && _admin.IsAdmin(follower); } return true; } }