示例#1
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            if (args.Length == 0)
            {
                Server.LoadServerSettingsFromFile();
                sender.SendChat("Server fully reloaded!");
            }
            else if (args.Length >= 1)
            {
                switch (args[0])
                {
                case "plugins":
                    ReloadPlugins();
                    sender.SendChat("Reloaded all plugins.", TextColor.Green);
                    break;

                case "config":
                    ReloadConfig();
                    sender.SendChat("Server config has been reloaded from file.", TextColor.Green);
                    break;

                default:
                    ReloadPlugins();
                    ReloadConfig();
                    sender.SendChat("Server fully reloaded!", TextColor.Green);
                    break;
                }
            }
        }
示例#2
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            var average = Globals.LevelManager.MainLevel.AvgTps();
            var exact   = Globals.LevelManager.MainLevel.CalculateTps();
            var color   = "a";

            if (exact <= 10)
            {
                color = "c";
            }
            if (exact <= 15 && exact > 10)
            {
                color = "e";
            }
            sender.SendChat("TPS: §" + color + exact);
            sender.SendChat("Miliseconds in Tick: " + average + "ms");
        }
示例#3
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            if (sender.IsPlayer())
            {
                if (args.Length == 0)
                {
                    sender.SendChat("Your current gamemode is [" + ((Player)sender).Gamemode + "]", TextColor.Gray);
                }
                else if (args.Length >= 1)
                {
                    switch (args[0].ToLower())
                    {
                    case "0":
                    case "s":
                    case "survival":
                        ((Player)sender).SetGamemode(Gamemode.Survival);
                        break;

                    case "3":
                    case "sp":
                    case "spectator":
                        ((Player)sender).SetGamemode(Gamemode.Spectator);
                        break;

                    case "2":
                    case "a":
                    case "adventure":
                        ((Player)sender).SetGamemode(Gamemode.Adventure);
                        break;

                    default:
                        ((Player)sender).SetGamemode(Gamemode.Creative);
                        break;
                    }
                }
                sender.SendChat($"Set your gamemode to [{((Player) sender).Gamemode}]", TextColor.Green);
            }
            else
            {
                ConsoleFunctions.WriteInfoLine("Cannot change gamemode through console.");
            }
        }
示例#4
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            if (sender.IsPlayer())
            {
                var player = (Player)sender;
                if (args.Length == 0)
                {
                    sender.SendChat($"Current level: {player.Level.LvlName}");
                    return;
                }
                var level = Globals.LevelManager.GetLevel(args[0]);
                if (level == null)
                {
                    sender.SendChat("That level doesn't exist!", TextColor.Red);
                    return;
                }

                Globals.LevelManager.TeleportToLevel(player, level);
            }
            else
            {
                ConsoleFunctions.WriteInfoLine("Cannot teleport console.");
            }
        }
示例#5
0
        public virtual IEnumerable <string> ParseTab(ICommandSender sender, string message, string prefix)
        {
            if (string.IsNullOrEmpty(message))
            {
                var strings = new List <string>();
                foreach (var keyValuePair in CommandMap)
                {
                    strings.AddRange(keyValuePair.Key);
                }
                return(strings);
            }
            var origMessage = message;

            try
            {
                message = message.Trim();
                while (message.Contains("  "))
                {
                    message = message.Replace("  ", " ");
                }
                var split   = message.Split(' ');
                var command = GetCommand(split[0]);
                if (command == default(Command))
                {
                    return(new List <string>());
                }

                string[] args;
                if (split.Length > 1)
                {
                    args = new string[split.Length - 1];
                    Array.Copy(split, 1, args, 0, split.Length - 1);
                }
                else
                {
                    args = new string[0];
                }

                return(command.TabComplete(sender, split[0], args, origMessage).ToList());
            }
            catch (Exception ex)
            {
                ConsoleFunctions.WriteWarningLine(ex.ToString());
                sender.SendChat("An error occured when tab-completing the command.", TextColor.Red);
            }
            return(new List <string>());
        }
示例#6
0
        public virtual void ParseCommand(ICommandSender sender, string message, string prefix)
        {
            var origMessage = message;

            try
            {
                message = message.Trim();
                while (message.Contains("  "))
                {
                    message = message.Replace("  ", " ");
                }
                var split   = message.Split(' ');
                var label   = split.Length == 1 ? message : message.Substring(0, message.IndexOf(' '));
                var command = GetCommand(label);

                {
                    var e = new CommandEvent(sender, command, origMessage, label, prefix, this, EventType.Pre);
                    EventManager.CallEvent(e);
                    if (e.Cancelled)
                    {
                        return;
                    }
                    if (e.Message != origMessage)
                    {
                        origMessage = e.Message;

                        message = origMessage.Trim();
                        while (message.Contains("  "))
                        {
                            message = message.Replace("  ", " ");
                        }

                        split = message.Split(' ');
                    }

                    command = e.Command;
                    sender  = e.Sender;
                    label   = e.Label;
                    prefix  = e.Prefix;
                }

                if (command == default(Command))
                {
                    UnknownCommand(sender, label);
                    return;
                }

                string[] args;
                if (split.Length > 1)
                {
                    args = new string[split.Length - 1];
                    Array.Copy(split, 1, args, 0, split.Length - 1);
                }
                else
                {
                    args = new string[0];
                }

                command.Execute(sender, label, args, origMessage);

                {
                    var e = new CommandEvent(sender, command, origMessage, label, prefix, this, EventType.Post);
                    EventManager.CallEvent(e);
                }
            }
            catch (Exception ex)
            {
                ConsoleFunctions.WriteWarningLine(ex.ToString());
                sender.SendChat("An error occured when executing this command.", TextColor.Red);
            }
        }
示例#7
0
 protected virtual void UnknownCommand(ICommandSender sender, string label)
 {
     sender.SendChat("Unknown command: " + label, TextColor.Red);
 }
示例#8
0
 public override void Execute(ICommandSender sender, string label, string[] args, string rawMessage)
 {
     sender.SendChat("Example command! RawMessage: " + rawMessage);
 }
示例#9
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            if (args.Length > 0 && args[0].ToLower().Equals("send"))
            {
                sender.SendChat(new ChatText("Black ", TextColor.Black)
                {
                    Next = new ChatText("DarkBlue ", TextColor.DarkBlue)
                    {
                        Next = new ChatText("DarkGreen ", TextColor.DarkGreen)
                        {
                            Next = new ChatText("DarkAqua ", TextColor.DarkAqua)
                            {
                                Next = new ChatText("DarkRed ", TextColor.DarkRed)
                                {
                                    Next = new ChatText("DarkPurple ", TextColor.DarkPurple)
                                    {
                                        Next = new ChatText("Gold ", TextColor.Gold)
                                        {
                                            Next = new ChatText("Gray ", TextColor.Gray)
                                            {
                                                Next = new ChatText("DarkGray ", TextColor.DarkGray)
                                                {
                                                    Next = new ChatText("Blue ", TextColor.Blue)
                                                    {
                                                        Next = new ChatText("Green ", TextColor.Green)
                                                        {
                                                            Next = new ChatText("Aqua ", TextColor.Aqua)
                                                            {
                                                                Next = new ChatText("Red ", TextColor.Red)
                                                                {
                                                                    Next = new ChatText("Purple ", TextColor.Purple)
                                                                    {
                                                                        Next = new ChatText("Yellow ", TextColor.Yellow)
                                                                        {
                                                                            Next = new ChatText("White ",
                                                                                                TextColor.White)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
                sender.SendChat(new ChatText("Black ", TextColor.Black, TextColor.Bold)
                {
                    Next = new ChatText("DarkBlue ", TextColor.DarkBlue, TextColor.Bold)
                    {
                        Next = new ChatText("DarkGreen ", TextColor.DarkGreen, TextColor.Bold)
                        {
                            Next = new ChatText("DarkAqua ", TextColor.DarkAqua, TextColor.Bold)
                            {
                                Next = new ChatText("DarkRed ", TextColor.DarkRed, TextColor.Bold)
                                {
                                    Next = new ChatText("DarkPurple ", TextColor.DarkPurple, TextColor.Bold)
                                    {
                                        Next = new ChatText("Gold ", TextColor.Gold, TextColor.Bold)
                                        {
                                            Next = new ChatText("Gray ", TextColor.Gray, TextColor.Bold)
                                            {
                                                Next = new ChatText("DarkGray ", TextColor.DarkGray, TextColor.Bold)
                                                {
                                                    Next = new ChatText("Blue ", TextColor.Blue, TextColor.Bold)
                                                    {
                                                        Next = new ChatText("Green ", TextColor.Green, TextColor.Bold)
                                                        {
                                                            Next = new ChatText("Aqua ", TextColor.Aqua, TextColor.Bold)
                                                            {
                                                                Next = new ChatText("Red ", TextColor.Red,
                                                                                    TextColor.Bold)
                                                                {
                                                                    Next = new ChatText("Purple ", TextColor.Purple,
                                                                                        TextColor.Bold)
                                                                    {
                                                                        Next = new ChatText("Yellow ", TextColor.Yellow,
                                                                                            TextColor.Bold)
                                                                        {
                                                                            Next = new ChatText("White Bold",
                                                                                                TextColor.White, TextColor.Bold)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
                sender.SendChat(new ChatText("Black ", TextColor.Black, TextColor.Italic)
                {
                    Next = new ChatText("DarkBlue ", TextColor.DarkBlue, TextColor.Italic)
                    {
                        Next = new ChatText("DarkGreen ", TextColor.DarkGreen, TextColor.Italic)
                        {
                            Next = new ChatText("DarkAqua ", TextColor.DarkAqua, TextColor.Italic)
                            {
                                Next = new ChatText("DarkRed ", TextColor.DarkRed, TextColor.Italic)
                                {
                                    Next = new ChatText("DarkPurple ", TextColor.DarkPurple, TextColor.Italic)
                                    {
                                        Next = new ChatText("Gold ", TextColor.Gold, TextColor.Italic)
                                        {
                                            Next = new ChatText("Gray ", TextColor.Gray, TextColor.Italic)
                                            {
                                                Next = new ChatText("DarkGray ", TextColor.DarkGray, TextColor.Italic)
                                                {
                                                    Next = new ChatText("Blue ", TextColor.Blue, TextColor.Italic)
                                                    {
                                                        Next = new ChatText("Green ", TextColor.Green, TextColor.Italic)
                                                        {
                                                            Next = new ChatText("Aqua ", TextColor.Aqua,
                                                                                TextColor.Italic)
                                                            {
                                                                Next = new ChatText("Red ", TextColor.Red,
                                                                                    TextColor.Italic)
                                                                {
                                                                    Next = new ChatText("Purple ", TextColor.Purple,
                                                                                        TextColor.Italic)
                                                                    {
                                                                        Next = new ChatText("Yellow ", TextColor.Yellow,
                                                                                            TextColor.Italic)
                                                                        {
                                                                            Next = new ChatText("White Italic",
                                                                                                TextColor.White, TextColor.Italic)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
                sender.SendChat(new ChatText("Black ", TextColor.Black, TextColor.Underline)
                {
                    Next = new ChatText("DarkBlue ", TextColor.DarkBlue, TextColor.Underline)
                    {
                        Next = new ChatText("DarkGreen ", TextColor.DarkGreen, TextColor.Underline)
                        {
                            Next = new ChatText("DarkAqua ", TextColor.DarkAqua, TextColor.Underline)
                            {
                                Next = new ChatText("DarkRed ", TextColor.DarkRed, TextColor.Underline)
                                {
                                    Next = new ChatText("DarkPurple ", TextColor.DarkPurple, TextColor.Underline)
                                    {
                                        Next = new ChatText("Gold ", TextColor.Gold, TextColor.Underline)
                                        {
                                            Next = new ChatText("Gray ", TextColor.Gray, TextColor.Underline)
                                            {
                                                Next = new ChatText("DarkGray ", TextColor.DarkGray,
                                                                    TextColor.Underline)
                                                {
                                                    Next = new ChatText("Blue ", TextColor.Blue, TextColor.Underline)
                                                    {
                                                        Next = new ChatText("Green ", TextColor.Green,
                                                                            TextColor.Underline)
                                                        {
                                                            Next = new ChatText("Aqua ", TextColor.Aqua,
                                                                                TextColor.Underline)
                                                            {
                                                                Next = new ChatText("Red ", TextColor.Red,
                                                                                    TextColor.Underline)
                                                                {
                                                                    Next = new ChatText("Purple ", TextColor.Purple,
                                                                                        TextColor.Underline)
                                                                    {
                                                                        Next = new ChatText("Yellow ", TextColor.Yellow,
                                                                                            TextColor.Underline)
                                                                        {
                                                                            Next = new ChatText("White Underline",
                                                                                                TextColor.White, TextColor.Underline)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
                sender.SendChat(new ChatText("Black ", TextColor.Black, TextColor.Strikethrough)
                {
                    Next = new ChatText("DarkBlue ", TextColor.DarkBlue, TextColor.Strikethrough)
                    {
                        Next = new ChatText("DarkGreen ", TextColor.DarkGreen, TextColor.Strikethrough)
                        {
                            Next = new ChatText("DarkAqua ", TextColor.DarkAqua, TextColor.Strikethrough)
                            {
                                Next = new ChatText("DarkRed ", TextColor.DarkRed, TextColor.Strikethrough)
                                {
                                    Next = new ChatText("DarkPurple ", TextColor.DarkPurple, TextColor.Strikethrough)
                                    {
                                        Next = new ChatText("Gold ", TextColor.Gold, TextColor.Strikethrough)
                                        {
                                            Next = new ChatText("Gray ", TextColor.Gray, TextColor.Strikethrough)
                                            {
                                                Next = new ChatText("DarkGray ", TextColor.DarkGray,
                                                                    TextColor.Strikethrough)
                                                {
                                                    Next = new ChatText("Blue ", TextColor.Blue,
                                                                        TextColor.Strikethrough)
                                                    {
                                                        Next = new ChatText("Green ", TextColor.Green,
                                                                            TextColor.Strikethrough)
                                                        {
                                                            Next = new ChatText("Aqua ", TextColor.Aqua,
                                                                                TextColor.Strikethrough)
                                                            {
                                                                Next = new ChatText("Red ", TextColor.Red,
                                                                                    TextColor.Strikethrough)
                                                                {
                                                                    Next = new ChatText("Purple ", TextColor.Purple,
                                                                                        TextColor.Strikethrough)
                                                                    {
                                                                        Next = new ChatText("Yellow ", TextColor.Yellow,
                                                                                            TextColor.Strikethrough)
                                                                        {
                                                                            Next = new ChatText("White Strikethrough",
                                                                                                TextColor.White,
                                                                                                TextColor.Strikethrough)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
                sender.SendChat(new ChatText("Black ", TextColor.Black, TextColor.Obfuscated)
                {
                    Next = new ChatText("DarkBlue ", TextColor.DarkBlue, TextColor.Obfuscated)
                    {
                        Next = new ChatText("DarkGreen ", TextColor.DarkGreen, TextColor.Obfuscated)
                        {
                            Next = new ChatText("DarkAqua ", TextColor.DarkAqua, TextColor.Obfuscated)
                            {
                                Next = new ChatText("DarkRed ", TextColor.DarkRed, TextColor.Obfuscated)
                                {
                                    Next = new ChatText("DarkPurple ", TextColor.DarkPurple, TextColor.Obfuscated)
                                    {
                                        Next = new ChatText("Gold ", TextColor.Gold, TextColor.Obfuscated)
                                        {
                                            Next = new ChatText("Gray ", TextColor.Gray, TextColor.Obfuscated)
                                            {
                                                Next = new ChatText("DarkGray ", TextColor.DarkGray,
                                                                    TextColor.Obfuscated)
                                                {
                                                    Next = new ChatText("Blue ", TextColor.Blue, TextColor.Obfuscated)
                                                    {
                                                        Next = new ChatText("Green ", TextColor.Green,
                                                                            TextColor.Obfuscated)
                                                        {
                                                            Next = new ChatText("Aqua ", TextColor.Aqua,
                                                                                TextColor.Obfuscated)
                                                            {
                                                                Next = new ChatText("Red ", TextColor.Red,
                                                                                    TextColor.Obfuscated)
                                                                {
                                                                    Next = new ChatText("Purple ", TextColor.Purple,
                                                                                        TextColor.Obfuscated)
                                                                    {
                                                                        Next = new ChatText("Yellow ", TextColor.Yellow,
                                                                                            TextColor.Obfuscated)
                                                                        {
                                                                            Next = new ChatText("White Obfuscated",
                                                                                                TextColor.White, TextColor.Obfuscated)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
            }

            var joinedArgs = string.Join(",", args);

            sender.SendChat($"Label: {label} Args: {{{joinedArgs}}}");
        }
示例#10
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            var joinedArgs = string.Join(",", args);

            sender.SendChat($"Label: {label} Args: {{{joinedArgs}}}");
        }
示例#11
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            if (sender.IsPlayer())
            {
                var player = (Player)sender;
                if (args.Length != 3 && args.Length != 5)
                {
                    SendUsage(sender, label);
                    return;
                }

                //player.Teleport(new PlayerLocation(player.KnownPosition.X, 80, player.KnownPosition.Z));
                //todo: ~ is relative  then get int from arg and tell player if it's not a number
                var    rotation          = args.Length == 5;
                var    relX              = args[0].StartsWith("~");
                var    relY              = args[1].StartsWith("~");
                var    relZ              = args[2].StartsWith("~");
                double posX              = 0;
                double posY              = 0;
                double posZ              = 0;
                var    yaw               = player.KnownPosition.Yaw;
                var    pitch             = player.KnownPosition.Pitch;
                var    msg               = "x";
                var    attemptConversion = "";
                try
                {
                    if (!relX || args[0].Length > 1)
                    {
                        posX = Convert.ToDouble(attemptConversion = relX ? args[0].Substring(1) : args[0]);
                    }
                    msg = "y";
                    if (!relY || args[1].Length > 1)
                    {
                        posY = Convert.ToDouble(attemptConversion = relY ? args[1].Substring(1) : args[1]);
                    }
                    msg = "z";
                    if (!relZ || args[2].Length > 1)
                    {
                        posZ = Convert.ToDouble(attemptConversion = relZ ? args[2].Substring(1) : args[2]);
                    }
                    if (rotation)
                    {
                        msg   = "yaw";
                        yaw   = (float)Convert.ToDouble(attemptConversion = args[3]);
                        msg   = "pitch";
                        pitch = (float)Convert.ToDouble(attemptConversion = args[4]);
                    }
                }
                catch (FormatException e)
                {
                    sender.SendChat($"Not a number argument {msg}: {attemptConversion}");
                    return;
                }

                player.Teleport(new PlayerLocation(posX += (relX ? player.KnownPosition.X : 0),
                                                   posY += (relY ? player.KnownPosition.Y : 0),
                                                   posZ += (relZ ? player.KnownPosition.Z : 0), yaw, pitch));
                sender.SendChat($"Teleported to: {posX}, {posY}, {posZ}" + (rotation ? $", {yaw}, {pitch}" : ""));
            }
            else
            {
                ConsoleFunctions.WriteInfoLine("Cannot teleport console.");
            }
        }
示例#12
0
 public void SendUsage(ICommandSender sender, string label)
 {
     sender.SendChat(GetUsage(label));
 }
示例#13
0
        public override void Execute(ICommandSender sender, string label, string[] args, string origMessage)
        {
            var enabledPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Enabled);
            var enabledText    = new ChatText($"Enabled Plugins: ", TextColor.Green);
            var enabledList    = enabledPlugins as KeyValuePair <IPlugin, PluginState>[] ?? enabledPlugins.ToArray();

            enabledText.SetNext(new ChatText($"({enabledList.Count()}) ", TextColor.Reset));
            ChatText last = null;

            foreach (var pair in enabledList)
            {
                enabledText.SetNext(last = new ChatText($"{pair.Key.GetName()}, "));
            }
            if (last != null)
            {
                last.Text = last.Text.Substring(0, last.Text.Length - 2) + ".";
            }
            sender.SendChat(enabledText);


            var loadedPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Loaded);
            var loadedText    = new ChatText($"Loaded Plugins: ", TextColor.Gray);
            var loadedList    = loadedPlugins as KeyValuePair <IPlugin, PluginState>[] ?? loadedPlugins.ToArray();

            loadedText.SetNext(new ChatText($"({loadedList.Count()}) ", TextColor.Reset));
            last = null;
            foreach (var pair in loadedList)
            {
                loadedText.SetNext(last = new ChatText($"{pair.Key.GetName()}, "));
            }
            if (last != null)
            {
                last.Text = last.Text.Substring(0, last.Text.Length - 2) + ".";
            }
            sender.SendChat(loadedText);


            var disabledPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Disabled);
            var disabledText    = new ChatText($"Disabled Plugins: ", TextColor.Red);
            var disabledList    = disabledPlugins as KeyValuePair <IPlugin, PluginState>[] ?? disabledPlugins.ToArray();

            disabledText.SetNext(new ChatText($"({disabledList.Count()}) ", TextColor.Reset));
            last = null;
            foreach (var pair in disabledList)
            {
                disabledText.SetNext(last = new ChatText($"{pair.Key.GetName()}, "));
            }
            if (last != null)
            {
                last.Text = last.Text.Substring(0, last.Text.Length - 2) + ".";
            }
            sender.SendChat(disabledText);


            var failedPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Failed);
            var failedText    = new ChatText($"Failed Plugins: ", TextColor.DarkRed);
            var failedList    = failedPlugins as KeyValuePair <IPlugin, PluginState>[] ?? failedPlugins.ToArray();

            failedText.SetNext(new ChatText($"({failedList.Count()}) ", TextColor.Reset));
            last = null;
            foreach (var pair in failedList)
            {
                failedText.SetNext(last = new ChatText($"{pair.Key.GetName()}, "));
            }
            if (last != null)
            {
                last.Text = last.Text.Substring(0, last.Text.Length - 2) + ".";
            }
            sender.SendChat(failedText);
        }