Пример #1
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            if (Players.Get(PlayerName).TPARequest == null)
            {
                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("На данный момент у Вас нет никаких заявок на телепортации");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                return;
            }
            else if (!Players.Get(Players.Get(PlayerName).TPARequest).Online)
            {
                Players.Get(PlayerName).TPARequest = null;

                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("Вы не можете телепортировать человека который на данный момент не в сети");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                return;
            }
            else
            {
                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("Телепортируем...");
                TellRaw["color"] = "green";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                RCON.Command("tellraw", Players.Get(PlayerName).TPARequest, TellRaw.ToString());
                RCON.Command("tp", Players.Get(PlayerName).TPARequest, PlayerName);

                Players.Get(PlayerName).TPARequest = null;
            }
        }
Пример #2
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            NBT TellRaw = new NBT();

            TellRaw["text"] = Str.Tr("Телепортируемся на спавн...");

            RCON.Command("tellraw", PlayerName, TellRaw.ToString());
            RCON.Command("tp", PlayerName, Sys.Ref.Config.SpawnPosition.ToString());
        }
Пример #3
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            NBT TellRaw = new NBT();

            TellRaw["text"]  = Str.Tr("Телепортируем в случайное место");
            TellRaw["color"] = "green";

            RCON.Command("tellraw", PlayerName, TellRaw.ToString());

            RCON.Command("spreadplayers 236 148 10000 100000 false " + PlayerName);
        }
Пример #4
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            var Commands = CommandManager.GetInfo();

            foreach (var Command in Commands)
            {
                if ((byte)Players.Get(PlayerName).PlayerType < (byte)Command.Item3)
                {
                    continue;
                }

                NBT ActionNBT = new NBT();
                ActionNBT["action"] = "run_command";
                ActionNBT["value"]  = "/say !" + Command.Item1;

                NBT CommandNameNBT = new NBT();
                CommandNameNBT["color"]      = "yellow";
                CommandNameNBT["text"]       = '!' + Command.Item1;
                CommandNameNBT["clickEvent"] = ActionNBT;

                NBT SerparatorNBT = new NBT();
                SerparatorNBT["color"] = "dark_green";
                SerparatorNBT["text"]  = " - ";

                NBT DescriptionNBT = new NBT();
                DescriptionNBT["color"] = "dark_aqua";
                DescriptionNBT["text"]  = Str.Tr(Command.Item2);

                RCON.Command("tellraw", PlayerName, '[' + CommandNameNBT.ToString() + ", " + SerparatorNBT.ToString() + ", " + DescriptionNBT.ToString() + ']');
            }
        }
Пример #5
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            string PositionString = RCON.Command("data get entity", PlayerName, "Pos");

            var Result = Rgx.Parse(PositionString, ": \\[(.*?)d, (.*?)d, (.*?)d\\]");

            int X = Convert.ToInt32(JsonConvert.DeserializeObject <double>(Result[0][0]));
            int Y = Convert.ToInt32(JsonConvert.DeserializeObject <double>(Result[0][1]));
            int Z = Convert.ToInt32(JsonConvert.DeserializeObject <double>(Result[0][2]));

            Players.Get(PlayerName).Home = new Position <int>(X, Y, Z);

            NBT TellRaw = new NBT();

            TellRaw["text"]  = Str.Tr("Успешно установили дом на ") + Players.Get(PlayerName).Home.ToString();
            TellRaw["color"] = "green";

            RCON.Command("tellraw", PlayerName, TellRaw.ToString());
        }
Пример #6
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            if (Players.Get(PlayerName).Home == null)
            {
                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("У Вас ещё нет дома! Установите его при помощи !sethome");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
            }
            else
            {
                NBT TellRaw = new NBT();
                TellRaw["text"] = Str.Tr("Телепортируемся домой...");

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                RCON.Command("tp", PlayerName, Players.Get(PlayerName).Home.ToString());
            }
        }
Пример #7
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            if (Players.Get(PlayerName).TPARequest == null)
            {
                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("На данный момент у Вас нет никаких заявок на телепортации");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                return;
            }
            else if (!Players.Get(Players.Get(PlayerName).TPARequest).Online)
            {
                Players.Get(PlayerName).TPARequest = null;

                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("Вы не можете отменить заявку человека который на данный момент не в сети");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                return;
            }
            else
            {
                NBT PlayerRaw = new NBT();
                PlayerRaw["text"]  = Str.Tr("Вы отклонили заявку...");
                PlayerRaw["color"] = "green";

                RCON.Command("tellraw", PlayerName, PlayerRaw.ToString());

                NBT TargetRaw = new NBT();
                TargetRaw["text"]  = Str.Tr("К сожалению Ваша заявка на телепортацию была отменена");
                TargetRaw["color"] = "red";

                RCON.Command("tellraw", Players.Get(PlayerName).TPARequest, TargetRaw.ToString());

                Players.Get(PlayerName).TPARequest = null;
            }
        }
        private void ProcessCommand(List <List <string> > CommandMatches)
        {
            foreach (var CommandMatch in CommandMatches)
            {
                string PlayerName = CommandMatch[3];

                var ProcessCommandResult = ProcessName(CommandMatch[4]);

                if (ProcessCommandResult == null)
                {
                    NBT TellRaw = new NBT();
                    TellRaw["text"]  = Str.Tr("Не удалось распознать команду");
                    TellRaw["color"] = "red";

                    RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                    continue;
                }

                string CommandName = ProcessCommandResult.Item1;

                if (!Commands.ContainsKey(CommandName))
                {
                    NBT TellRaw = new NBT();
                    TellRaw["text"]  = Str.Tr("Данной команды не существует, обратитесь к !help");
                    TellRaw["color"] = "red";

                    RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                    continue;
                }

                if ((byte)Players.Get(PlayerName).PlayerType < (byte)Commands[CommandName].PlayerAccessLevel)
                {
                    NBT TellRaw = new NBT();
                    TellRaw["text"]  = Str.Tr("У вас нет прав чтобы использовать эту команду");
                    TellRaw["color"] = "red";

                    RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                    continue;
                }

                long Unix = Time.GetUnix();

                if (Players.Get(PlayerName).Timeouts.ContainsKey(CommandName))
                {
                    if (Unix < Players.Get(PlayerName).Timeouts[CommandName])
                    {
                        long Delta = Players.Get(PlayerName).Timeouts[CommandName] - Unix;

                        NBT TellRaw = new NBT();
                        TellRaw["text"]  = Str.Tr("А ну ка подожди! Отдыхай ещё ") + Delta + Str.Tr(" секунд");
                        TellRaw["color"] = "red";

                        RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                        continue;
                    }
                }

                Players.Get(PlayerName).Timeouts[CommandName] = Unix + Commands[CommandName].SecondsLimit;

                if (Commands[CommandName].ArgumentTypes.Count > 0)
                {
                    object[] Arguments = ProcessArguments(ProcessCommandResult.Item2, Commands[CommandName].ArgumentTypes);

                    if (Arguments == null)
                    {
                        NBT TellRaw = new NBT();
                        TellRaw["text"]  = Str.Tr("Неверные аргументы команды");
                        TellRaw["color"] = "red";

                        RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                        continue;
                    }

                    Commands[CommandName].Executor.Execute(PlayerName, Arguments);
                }
                else
                {
                    Commands[CommandName].Executor.Execute(PlayerName, null);
                }
            }
        }
Пример #9
0
        public void Execute(string PlayerName, params object[] Arguments)
        {
            string Target = (string)Arguments[0];

            if (PlayerName == Target)
            {
                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("Вы не можете телепортироваться к самому себе");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                return;
            }
            else if (Players.Get(Target).Online == false)
            {
                NBT TellRaw = new NBT();
                TellRaw["text"]  = Str.Tr("Вы не можете телепортироваться к человеку, который в не сети");
                TellRaw["color"] = "red";

                RCON.Command("tellraw", PlayerName, TellRaw.ToString());
                return;
            }
            else
            {
                Players.Get(Target).TPARequest = PlayerName;

                NBT PlayerRaw = new NBT();
                PlayerRaw["text"]  = Str.Tr("Заявка отправлена");
                PlayerRaw["color"] = "green";

                RCON.Command("tellraw", PlayerName, PlayerRaw.ToString());

                NBT OriginalPlayer = new NBT();
                OriginalPlayer["text"]  = PlayerName;
                OriginalPlayer["color"] = "light_purple";

                NBT TargetRaw = new NBT();
                TargetRaw["text"] = Str.Tr(" желает телепортироваться к Вам!\n");

                NBT AcceptAction = new NBT();
                AcceptAction["action"] = "run_command";
                AcceptAction["value"]  = "/say !tpaaccept";

                NBT AcceptLabel = new NBT();
                AcceptLabel["color"]      = "yellow";
                AcceptLabel["text"]       = "!tpaaccept";
                AcceptLabel["clickEvent"] = AcceptAction;

                NBT AcceptDescription = new NBT();
                AcceptDescription["color"] = "green";
                AcceptDescription["text"]  = Str.Tr(" - Чтобы принять заявку\n");

                NBT DeclineAction = new NBT();
                DeclineAction["action"] = "run_command";
                DeclineAction["value"]  = "/say !tpadecline";

                NBT DeclineActionLabel = new NBT();
                DeclineActionLabel["color"]      = "yellow";
                DeclineActionLabel["text"]       = "!tpadecline";
                DeclineActionLabel["clickEvent"] = DeclineAction;

                NBT DeclineActionDescription = new NBT();
                DeclineActionDescription["color"] = "red";
                DeclineActionDescription["text"]  = Str.Tr(" - Чтобы отвергнуть заявку\n");

                RCON.Command("tellraw", Target, '[' + OriginalPlayer.ToString() + ", " + TargetRaw.ToString() + ", " + AcceptLabel.ToString() + ", " + AcceptDescription.ToString() + ", " +
                             DeclineActionLabel.ToString() + ", " + DeclineActionDescription.ToString() + ']');
            }
        }