Ejemplo n.º 1
0
        void OnAuthGroupShowCommand(BasePlayer player, string groupName)
        {
            AuthGroup group = Groups.GetByOwnerOrManager(player, groupName);

            if (group == null)
            {
                SendReply(player, Messages.YouAreNotOwnerOrManagerOfGroup, groupName);
                return;
            }

            var sb = new StringBuilder();

            sb.Append($"Auth group <color=#ffd479>{group.Name}</color> ");

            if (group.Entities.Count == 0)
            {
                sb.AppendLine("isn't managing any items.");
            }
            else
            {
                sb.AppendLine($"is managing <color=#ffd479>{group.Entities.Count}</color> items:");
            }

            var cupboards = group.GetAllManagedEntitiesOfType <ManagedToolCupboard>();

            if (cupboards.Length > 0)
            {
                sb.AppendLine($"  <color=#ffd479>{cupboards.Length}</color> tool cupboard(s)");
            }

            var turrets = group.GetAllManagedEntitiesOfType <ManagedAutoTurret>();

            if (turrets.Length > 0)
            {
                sb.AppendLine($"  <color=#ffd479>{turrets.Length}</color> turret(s)");
            }

            var codeLocks = group.GetAllManagedEntitiesOfType <ManagedCodeLock>();

            if (codeLocks.Length > 0)
            {
                sb.AppendLine($"  <color=#ffd479>{codeLocks.Length}</color> code lock(s)");
            }

            sb.AppendLine($"Owner: {FormatPlayerName(group.OwnerId)}");

            if (group.ManagerIds.Count > 0)
            {
                sb.Append($"<color=#ffd479>{group.ManagerIds.Count}</color> managers: ");
                sb.AppendLine(String.Join(", ", group.ManagerIds.Select(FormatPlayerName).ToArray()));
            }

            sb.Append($"<color=#ffd479>{group.MemberIds.Count}</color> members: ");
            sb.AppendLine(String.Join(", ", group.MemberIds.Select(FormatPlayerName).ToArray()));

            SendReply(player, sb.ToString());
        }
Ejemplo n.º 2
0
        void OnAuthGroupCodeLocksCommand(BasePlayer player, string groupName, string[] args)
        {
            string command = (args.Length == 0) ? null : args[0].ToLowerInvariant();

            if (command == null)
            {
                OnAuthGroupCodeLocksHelpCommand(player);
                return;
            }

            AuthGroup group = Groups.GetByOwnerOrManager(player, groupName);

            if (group == null)
            {
                SendReply(player, Messages.YouAreNotOwnerOrManagerOfGroup, groupName);
                return;
            }

            var codeLocks = group.GetAllManagedEntitiesOfType <ManagedCodeLock>();

            if (codeLocks.Length == 0)
            {
                SendReply(player, Messages.CannotSendLocksCommandNoLocksInGroup, group.Name);
                return;
            }

            string code = (args.Length < 2) ? null : args[1].Trim();

            switch (command)
            {
            case "code":
                if (code == null || code.Length != 4)
                {
                    OnAuthGroupCodeLocksHelpCommand(player);
                    break;
                }
                foreach (ManagedCodeLock codeLock in codeLocks)
                {
                    codeLock.SetCode(code);
                }
                SendReply(player, Messages.AllLocksCodeChanged, group.Name);
                break;

            case "guestcode":
                if (code == null || code.Length != 4)
                {
                    OnAuthGroupCodeLocksHelpCommand(player);
                    break;
                }
                foreach (ManagedCodeLock codeLock in codeLocks)
                {
                    codeLock.SetGuestCode(code);
                }
                SendReply(player, Messages.AllLocksGuestCodeChanged, group.Name);
                break;

            case "lock":
                foreach (ManagedCodeLock codeLock in codeLocks)
                {
                    codeLock.SetIsLocked(true);
                }
                SendReply(player, Messages.AllLocksLocked, group.Name);
                break;

            case "unlock":
                foreach (ManagedCodeLock codeLock in codeLocks)
                {
                    codeLock.SetIsLocked(false);
                }
                SendReply(player, Messages.AllLocksUnlocked, group.Name);
                break;

            default:
                OnAuthGroupTurretsHelpCommand(player);
                break;
            }
        }