Esempio n. 1
0
        private void STM_Commands(BasePlayer player, string command, string[] args)
        {
            if (args[0] == "toggle")
            {
                if (players.Contains(player))
                {
                    SendReply(player, string.Format(GetMsg("hudtoggle", player.UserIDString), "Off")); players.Remove(player); Destroy(player);
                }
                else
                {
                    SendReply(player, string.Format(GetMsg("hudtoggle", player.UserIDString), "On")); players.Add(player); CreateBasicUI();
                }
                return;
            }
            if (!permission.UserHasPermission(player.UserIDString, "screentimer.admin"))
            {
                SendReply(player, lang.GetMessage("NoPerm", this, player.UserIDString));
                return;
            }
            if (!(args.Length > 0))
            {
                SendReply(player, lang.GetMessage("help", this, player.UserIDString));
                return;
            }
            switch (args[0])
            {
            case "wipe":
                storage.screen = -1;
                storage.count  = 0;
                storage.handlers.Clear();
                SaveData();
                SendReply(player, "Screen Timer Data Wiped");
                break;

            case "create":
                if (args.Length > 3 || args.Length < 2)
                {
                    SendReply(player, lang.GetMessage("help", this, player.UserIDString));
                    return;
                }
                var nt = new TimeHandler();
                if (nt.Create(this, args[1], args[2]) == ReturnType.TimeIssue)
                {
                    SendReply(player, GetMsg("InvalidFormat", player.UserIDString));
                    return;
                }
                SendReply(player, string.Format(GetMsg("Created", player.UserIDString), args[1], args[2], storage.count));
                SaveData();
                break;

            case "end":
                if (args.Length > 3 || args.Length < 2)
                {
                    SendReply(player, lang.GetMessage("help", this, player.UserIDString));
                    return;
                }
                var id = Convert.ToInt32(args[1]);
                if (!storage.handlers.ContainsKey(id))
                {
                    SendReply(player, GetMsg("noexist", player.UserIDString));
                    return;
                }
                var t = storage.handlers[id];
                t.HandleEnd();
                SendReply(player, "Stopping Timer");
                break;

            case "show":
                if (args.Length > 2 || args.Length < 1)
                {
                    SendReply(player, lang.GetMessage("help", this, player.UserIDString));
                    return;
                }
                var idn = Convert.ToInt32(args[1]);
                var ti  = storage.handlers[idn];
                if (!storage.handlers.ContainsKey(idn))
                {
                    SendReply(player, GetMsg("noexist", player.UserIDString));
                    return;
                }
                storage.screen = idn;
                foreach (var p in BasePlayer.activePlayerList)
                {
                    Destroy(p);
                }
                ti.Show();
                SaveData();
                SendReply(player, string.Format(GetMsg("TimerSet", player.UserIDString), idn));
                break;

            case "edit":
                if (args.Length > 4 || args.Length < 3)
                {
                    SendReply(player, lang.GetMessage("help", this, player.UserIDString));
                    return;
                }
                TimeHandler timer;
                int         key;
                key = Convert.ToInt32(args[1]);
                if (!storage.handlers.ContainsKey(key))
                {
                    SendReply(player, GetMsg("noexist", player.UserIDString));
                    return;
                }
                timer = storage.handlers[key];
                switch (args[2])
                {
                case "Text":
                    SendReply(player, string.Format(GetMsg("TypeSet", player.UserIDString), args[2], "text", args[3]));
                    timer.SetValue(ValueType.Type_Text, args[3]);
                    SaveData();
                    break;

                case "Size":
                    SendReply(player, string.Format(GetMsg("TypeSet", player.UserIDString), args[2], "size", args[3]));
                    timer.SetValue(ValueType.Type_Size, args[3]);
                    SaveData();
                    break;

                case "Color":
                    SendReply(player, string.Format(GetMsg("TypeSet", player.UserIDString), args[2], "color", args[3]));
                    timer.SetValue(ValueType.Type_Color, args[3]);
                    SaveData();
                    break;

                case "TimeTextSize":
                    SendReply(player, string.Format(GetMsg("TypeSet", player.UserIDString), args[2], "time size", args[3]));
                    timer.SetValue(ValueType.Type_TSize, args[3]);
                    SaveData();
                    break;

                case "TimeTextColor":
                    SendReply(player, string.Format(GetMsg("TypeSet", player.UserIDString), args[2], "time color", args[3]));
                    timer.SetValue(ValueType.Type_TColor, args[3]);
                    SaveData();
                    break;

                case "Command":
                    SendReply(player, string.Format(GetMsg("TypeSet", player.UserIDString), args[2], "command", args[3]));
                    timer.SetValue(ValueType.Type_Command, args[3]);
                    SaveData();
                    break;

                default:
                    SendReply(player, lang.GetMessage("valuetable", this, player.UserIDString));
                    return;

                    break;
                }
                break;

            case "types":
                SendReply(player, lang.GetMessage("valuetable", this, player.UserIDString));
                break;

            case "list":
                if (storage.handlers.Count == 0)
                {
                    SendReply(player, "No timers in storage.");
                    return;
                }
                foreach (var e in storage.handlers)
                {
                    SendReply(player, $"ID:{e.Key} - Text:{storage.handlers[e.Key].type_text}");
                }
                break;

            default:
                SendReply(player, lang.GetMessage("help", this, player.UserIDString));
                break;
            }
        }