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; } }
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()); }
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); }
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() + ']'); } }
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()); }
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()); } }
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); } } }
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() + ']'); } }