Пример #1
0
        public override void Use(Player p, string message)
        {
            if (message == "")
            {
                Help(p); return;
            }
            string cmdName = message.Split(' ')[0];

            if (Command.core.Contains(cmdName))
            {
                Player.Message(p, "/{0} is a core command, you cannot unload it.", cmdName); return;
            }

            Command cmd = Command.all.Find(cmdName);

            if (cmd == null)
            {
                Player.Message(p, "\"{0}\" is not a valid or loaded command.", cmdName); return;
            }

            Command.all.Remove(cmd);
            foreach (Group grp in Group.GroupList)
            {
                grp.commands.Remove(cmd);
            }
            GrpCommands.Remove(cmd.name);
            Player.Message(p, "Command was successfully unloaded.");
        }
Пример #2
0
        void saveStuff()
        {
            foreach (Control tP in tabControl.Controls)
            {
                if (tP is TabPage && tP != tabPage3 && tP != tabPage5)
                {
                    foreach (Control ctrl in tP.Controls)
                    {
                        if (ctrl is TextBox)
                        {
                            if (ctrl.Text == "")
                            {
                                MessageBox.Show("A textbox has been left empty. It must be filled.\n" + ctrl.Name);
                                return;
                            }
                        }
                    }
                }
            }

            Save("properties/server.properties");
            SaveRanks();
            SaveCommands();
            SaveBlocks();

            Properties.Load("properties/server.properties", true);
            GrpCommands.fillRanks();
        }
Пример #3
0
        internal static string GetColor(Command cmd)
        {
            LevelPermission perm = GrpCommands.MinPerm(cmd);
            Group           grp  = Group.findPerm(perm);

            return(grp == null ? "&f" : grp.color);
        }
Пример #4
0
        public override void Use(Player p, string message)
        {
            string[] args = message.Split(' ');
            if (message == "" || args.Length == 1)
            {
                Help(p); return;
            }
            Command cmd = Command.all.Find(args[0]);

            if (cmd == null)
            {
                Player.SendMessage(p, "Could not find command entered"); return;
            }
            if (p != null && !p.group.CanExecute(cmd))
            {
                Player.SendMessage(p, "Your rank cannot use this command."); return;
            }

            LevelPermission perm = Level.PermissionFromName(args[1]);

            if (perm == LevelPermission.Null)
            {
                Player.SendMessage(p, "Could not find rank specified"); return;
            }
            if (p != null && perm > p.group.Permission)
            {
                Player.SendMessage(p, "Cannot set permissions to a rank higher than yours."); return;
            }

            int    otherPermIndex = 0;
            string permName       = "permission";

            if (args.Length == 2)
            {
                GrpCommands.allowedCommands.Find(rA => rA.commandName == cmd.name).lowestRank = perm;
                GrpCommands.Save(GrpCommands.allowedCommands);
                GrpCommands.fillRanks();
            }
            else if (!int.TryParse(args[2], out otherPermIndex))
            {
                Player.SendMessage(p, "\"" + args[2] + "\" is not an integer.");
            }
            else
            {
                CommandOtherPerms.OtherPerms perms = CommandOtherPerms.Find(cmd, otherPermIndex);
                if (perms == null)
                {
                    Player.SendMessage(p, "This command has no additional permission with that number."); return;
                }
                perms.Permission = (int)perm;
                CommandOtherPerms.Save();
                permName = "additional permission " + otherPermIndex;
            }
            Player.GlobalMessage("&d" + cmd.name + "%S's " + permName + " was set to " + Level.PermissionToName(perm));
            Player.SendMessage(p, cmd.name + "'s " + permName + " was set to " + Level.PermissionToName(perm));
        }
Пример #5
0
 public static void LoadAllSettings()
 {
     Properties.Load("properties/server.properties");
     Updater.Load("properties/update.properties");
     MCLawl.Group.InitAll();
     Command.InitAll();
     GrpCommands.fillRanks();
     Block.SetBlocks();
     Awards.Load();
 }
Пример #6
0
 static void UpdatePermissions(Command cmd, Player p, string message)
 {
     GrpCommands.Save(GrpCommands.allowedCommands);
     GrpCommands.fillRanks();
     Chat.MessageAll("&d{0}%S{1}", cmd.name, message);
     if (Player.IsSuper(p))
     {
         Player.Message(p, cmd.name + message);
     }
 }
Пример #7
0
        public override void Use(Player p, string message)
        {
            if (message == "" || message.IndexOf(' ') == -1)
            {
                Help(p); return;
            }

            string foundBlah = Command.all.FindShort(message.Split(' ')[0]);

            Command foundCmd;

            if (foundBlah == "")
            {
                foundCmd = Command.all.Find(message.Split(' ')[0]);
            }
            else
            {
                foundCmd = Command.all.Find(foundBlah);
            }

            if (foundCmd == null)
            {
                Player.SendMessage(p, "Could not find command entered"); return;
            }
            if (p != null && !p.group.CanExecute(foundCmd))
            {
                Player.SendMessage(p, "This command is higher than your rank."); return;
            }

            LevelPermission newPerm = Level.PermissionFromName(message.Split(' ')[1]);

            if (newPerm == LevelPermission.Null)
            {
                Player.SendMessage(p, "Could not find rank specified"); return;
            }
            if (p != null && newPerm > p.group.Permission)
            {
                Player.SendMessage(p, "Cannot set to a rank higher than yourself."); return;
            }

            GrpCommands.rankAllowance newCmd = GrpCommands.allowedCommands.Find(rA => rA.commandName == foundCmd.name);
            newCmd.lowestRank = newPerm;
            GrpCommands.allowedCommands[GrpCommands.allowedCommands.FindIndex(rA => rA.commandName == foundCmd.name)] = newCmd;

            GrpCommands.Save(GrpCommands.allowedCommands);
            GrpCommands.fillRanks();
            Player.GlobalMessage("&d" + foundCmd.name + Server.DefaultColor + "'s permission was changed to " + Level.PermissionToName(newPerm));
            //if (p == null) ; // this is useless?
            //{
            Player.SendMessage(p, foundCmd.name + "'s permission was changed to " + Level.PermissionToName(newPerm));
            return;
            //}
        }
Пример #8
0
 static void SortCommands(List <Command> cmds, string sort)
 {
     if (sort == "name" || sort == "names")
     {
         cmds.Sort((a, b) => a.name
                   .CompareTo(b.name));
     }
     if (sort == "rank" || sort == "ranks")
     {
         cmds.Sort((a, b) => GrpCommands.MinPerm(a)
                   .CompareTo(GrpCommands.MinPerm(b)));
     }
 }
Пример #9
0
        public override void Use(Player p, string message)
        {
            if (message == "")
            {
                Help(p); return;
            }
            if (Command.core.Contains(message.Split(' ')[0]))
            {
                Player.SendMessage(p, "/" + message.Split(' ')[0] + " is a core command, you cannot unload it!");
                return;
            }
            Command foundCmd = Command.all.Find(message.Split(' ')[0]);

            if (foundCmd == null)
            {
                Player.SendMessage(p, message.Split(' ')[0] + " is not a valid or loaded command.");
                return;
            }
            Command.all.Remove(foundCmd);
            GrpCommands.fillRanks();
            Player.SendMessage(p, "Command was successfully unloaded.");
        }
Пример #10
0
        public override void Use(Player p, string message)
        {
            if (Command.all.Contains(message.Split(' ')[0]))
            {
                Player.SendMessage(p, "That command is already loaded!");
                return;
            }

            string[] param = message.Split(' ');
            string   name  = "Cmd" + param[0];


            if (param.Length == 1)
            {
                string error = Scripting.Load(name);
                if (error != null)
                {
                    Player.SendMessage(p, error);
                    return;
                }
                GrpCommands.fillRanks();
                Player.SendMessage(p, "Command was successfully loaded.");
                return;
            }
            if (param[1] == "vb")
            {
                string error = ScriptingVB.Load(name);
                if (error != null)
                {
                    Player.SendMessage(p, error);
                    return;
                }
                GrpCommands.fillRanks();
                Player.SendMessage(p, "Command was successfully loaded.");
                return;
            }
        }
Пример #11
0
        public override void Use(Player p, string message)
        {
            if (!Formatter.ValidName(p, message, "command"))
            {
                return;
            }
            if (Command.all.Contains(message))
            {
                Player.Message(p, "That command is already loaded!"); return;
            }
            if (!File.Exists(Scripting.DllDir + "Cmd" + message + ".dll"))
            {
                Player.Message(p, "File &9Cmd" + message + ".dll %Snot found."); return;
            }

            string error = Scripting.Load("Cmd" + message);

            if (error != null)
            {
                Player.Message(p, error); return;
            }
            GrpCommands.fillRanks();
            Player.Message(p, "Command was successfully loaded.");
        }
Пример #12
0
        static void AddMap(Player p, string value)
        {
            if (p.group.OverseerMaps == 0)
            {
                Player.Message(p, "Your rank is not allowed to create any /os maps."); return;
            }
            string level = NextLevel(p);

            if (level == null)
            {
                return;
            }

            if (value == "")
            {
                value = "128 64 128 flat";
            }
            else if (value.IndexOf(' ') == -1)
            {
                value = "128 64 128 " + value;
            }

            string[] args = value.TrimEnd().Split(' ');
            if (args.Length == 3)
            {
                value += " flat";
            }

            CmdNewLvl newLvl = (CmdNewLvl)Command.all.Find("newlvl"); // TODO: this is a nasty hack, find a better way

            if (!newLvl.GenerateMap(p, level + " " + value))
            {
                return;
            }

            // Set default perbuild permissions
            CmdLoad.LoadLevel(null, level);
            Level lvl = LevelInfo.FindExact(level);

            if (lvl == null)
            {
                return;
            }

            lvl.RealmOwner = p.name;
            Command.all.Find("perbuild").Use(null, lvl.name + " +" + p.name);
            CmdZone.ZoneAll(lvl, p.name);

            LevelPermission osPerm = Server.osPerbuildDefault;

            if (osPerm == LevelPermission.Nobody)
            {
                osPerm = GrpCommands.MinPerm(Command.all.Find("overseer"));
            }
            Group grp = Group.findPerm(osPerm);

            if (grp == null)
            {
                return;
            }

            Command.all.Find("perbuild").Use(null, lvl.name + " " + grp.name);
            Player.Message(p, "Use %T/os zone add [name] %Sto allow " +
                           "players ranked below " + grp.ColoredName + " %Sto build in the map.");
        }
Пример #13
0
 public void SaveCommands()
 {
     GrpCommands.Save(storedCommands);
     GrpCommands.fillRanks();
     LoadCommands();
 }