Иконка ресурса

FREE CodeSync : 2.0.5 2.0.5

Нет прав для скачивания
C#:
using System.Collections.Generic;
using System.Security;

namespace Oxide.Plugins
{
    [Info("Code Sync", "Wulf & Low", "2.0.5")]
    [Description("Automatically allows players access to code locks based on tool cupboard authorization + team")]
    public class CodeSync : CovalencePlugin
    {

        #region Lock Handling

        private BuildingManager.Building GetBuilding(BaseEntity entity)
        {
            var parent = entity.GetParentEntity();

            if (parent == null)
                return null;

            BuildingManager.Building building;

            if (parent.prefabID == 4211374971 || parent.prefabID == 95147612)
                building = parent.GetBuildingPrivilege()?.GetBuilding();
            else
                building = (parent as DecayEntity)?.GetBuilding();

            if (building == null || building.buildingPrivileges == null || building.buildingPrivileges.Count == 0)
                return null;

            return building;
        }

        private CodeLock GetCupboardLock(BuildingManager.Building building)
        {
            return building.buildingPrivileges[0].GetSlot(BaseEntity.Slot.Lock) as CodeLock;
        }

        private object CanUseLockedEntity(BasePlayer basePlayer, CodeLock codeLock)
        {
            if (!codeLock.IsLocked())
                return null;
            var building = GetBuilding(codeLock);
            if (building == null)
                return null;
            var tc = building.buildingPrivileges[0];
            var tcLock = GetCupboardLock(building);

            if (tcLock == null)
                return null;
            if (tcLock.whitelistPlayers.Contains(basePlayer.userID) || tcLock.guestPlayers.Contains(basePlayer.userID))
                return true;
            var authList = tc.authorizedPlayers;
            if (authList == null || authList.Count == 0)
                return null;

            foreach (var authId in authList)
            {
                var team = RelationshipManager.ServerInstance.FindPlayersTeam(authId);
                if (team == null) continue;

                if (team.members.Contains(basePlayer.userID))
                    return true;
            }

            return null;
        }

        #endregion

    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху