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; } } }