Exemple #1
0
        public static void OnTryChangeBlock(ModLoader.OnTryChangeBlockData userData)
        {
            Players.Player causedBy = null;
            if (userData.RequestOrigin.Type == BlockChangeRequestOrigin.EType.Player)
            {
                causedBy = userData.RequestOrigin.AsPlayer;
            }
            if (causedBy == null || AngryGuards.ModeSetting != GuardMode.Passive || PermissionsManager.HasPermission(causedBy, AngryGuards.PERMISSION_PREFIX + ".peacekeeper"))
            {
                return;
            }

            // check if the block change is within range of a banner(colony)
            foreach (Colony checkColony in ServerManager.ColonyTracker.ColoniesByID.Values)
            {
                if (IsOwnerOrFriendly(checkColony, causedBy))
                {
                    continue;
                }
                foreach (BannerTracker.Banner checkBanner in checkColony.Banners)
                {
                    int distanceX = (int)System.Math.Abs(causedBy.Position.x - checkBanner.Position.x);
                    int distanceZ = (int)System.Math.Abs(causedBy.Position.z - checkBanner.Position.z);
                    if (distanceX < PassiveProtectionRange && distanceZ < PassiveProtectionRange)
                    {
                        PlayerTracker.AddEnemy(checkColony, causedBy);
                        return;
                    }
                }
            }
            return;
        }
Exemple #2
0
        public static void OnNPCHit(NPC.NPCBase npc, ModLoader.OnHitData data)
        {
            if (!(data.HitSourceObject is Players.Player))
            {
                return;
            }
            Players.Player killer = (Players.Player)data.HitSourceObject;
            foreach (Players.Player owner in npc.Colony.Owners)
            {
                if (owner == killer || PlayerTracker.IsFriendly(owner, killer))
                {
                    return;
                }
            }

            PlayerTracker.AddEnemy(npc.Colony, killer);
        }