@@ -35,6 +35,7 @@ public sealed class FollowerSystem : EntitySystem
|
||||
[Dependency] private readonly ISharedAdminManager _adminManager = default!;
|
||||
|
||||
private static readonly ProtoId<TagPrototype> ForceableFollowTag = "ForceableFollow";
|
||||
private static readonly ProtoId<TagPrototype> PreventGhostnadoWarpTag = "NotGhostnadoWarpable";
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -320,11 +321,17 @@ public sealed class FollowerSystem : EntitySystem
|
||||
var query = EntityQueryEnumerator<FollowerComponent, GhostComponent, ActorComponent>();
|
||||
while (query.MoveNext(out _, out var follower, out _, out var actor))
|
||||
{
|
||||
// Exclude admins
|
||||
// Don't count admin followers so that players cannot notice if admins are in stealth mode and following someone.
|
||||
if (_adminManager.IsAdmin(actor.PlayerSession))
|
||||
continue;
|
||||
|
||||
var followed = follower.Following;
|
||||
|
||||
// If the followed entity cannot be ghostnado'd to, we don't count it.
|
||||
// Used for making admins not warpable to, but IsAdmin isn't used for cases where the admin wants to be followed, for example during events.
|
||||
if (_tagSystem.HasTag(followed, PreventGhostnadoWarpTag))
|
||||
continue;
|
||||
|
||||
// Add new entry or increment existing
|
||||
followedEnts.TryGetValue(followed, out var currentValue);
|
||||
followedEnts[followed] = currentValue + 1;
|
||||
|
||||
Reference in New Issue
Block a user