Example #1
0
        private void SetFlags(CommandArgs args)
        {
            if (args.Parameters.Count == 1 && args.Parameters[0] == "flags")
            {
                string flags = string.Join(", ", Enum.GetNames(typeof(Flags)));
                args.Player.SendInfoMessage("Available flags: {0}", flags);
                return;
            }
            if (args.Parameters.Count < 3)
            {
                args.Player.SendMessage("Invalid usage: /rflags(/rf) set|rem [region name] [flag]", Color.Red);
                return;
            }

            string        regionname = args.Parameters[1];
            string        flag       = args.Parameters[2];
            FlaggedRegion reg        = regions.getRegion(regionname);

            if (reg == null)
            {
                args.Player.SendMessage("Invalid region", Color.Red);
                return;
            }
            switch (args.Parameters[0])
            {
            case "set":
            case "add":
            {
                Flags enumval;
                if (Flags.TryParse(flag.ToUpper(), out enumval))
                {
                    reg.setFlags(enumval);
                    if (!regions.UpdateRegion(regionname))
                    {
                        args.Player.SendMessage("Region doesn't exist.", Color.Red);
                    }
                    args.Player.SendMessage("Region now has flag.", Color.Green);
                }
                else
                {
                    args.Player.SendMessage("Invalid flag", Color.Red);
                }
                break;
            }

            case "rem":
            case "remove":
            {
                Flags enumval;
                if (Flags.TryParse(flag.ToUpper(), out enumval))
                {
                    reg.removeFlags(enumval);
                    if (!regions.UpdateRegion(regionname))
                    {
                        args.Player.SendMessage("Region doesn't exist.", Color.Red);
                    }
                    args.Player.SendMessage("Flag has been removed from region.", Color.Green);
                }
                else
                {
                    args.Player.SendMessage("Invalid flag", Color.Red);
                }
                break;
            }
            }
        }