Simplify extra permission checking

This commit is contained in:
UnknownShadow200 2017-08-11 12:19:59 +10:00
parent 8cd6f83dbd
commit 96185e14ac
27 changed files with 78 additions and 83 deletions

View File

@ -60,7 +60,7 @@ namespace MCGalaxy.Commands.Bots {
UpdateBot(p, bot, "'s hunt instinct: " + bot.hunt); UpdateBot(p, bot, "'s hunt instinct: " + bot.hunt);
return; return;
} else if (ai.CaselessEq("kill")) { } else if (ai.CaselessEq("kill")) {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
bot.kill = !bot.kill; bot.kill = !bot.kill;
UpdateBot(p, bot, "'s kill instinct: " + bot.kill); UpdateBot(p, bot, "'s kill instinct: " + bot.kill);
return; return;

View File

@ -37,7 +37,7 @@ namespace MCGalaxy.Commands.Chatting {
Player.Message(p, p.Ping.Format()); Player.Message(p, p.Ping.Format());
} }
} else { } else {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p); return; } if (!CheckExtraPerm(p, 1)) return;
Player[] players = PlayerInfo.Online.Items; Player[] players = PlayerInfo.Online.Items;
Player.Message(p, "Ping/latency list for online players:"); Player.Message(p, "Ping/latency list for online players:");

View File

@ -107,7 +107,7 @@ namespace MCGalaxy.Commands.Chatting {
} }
void HandleCreate(Player p, string[] parts) { void HandleCreate(Player p, string[] parts) {
if (!CheckExtraPerm(p, 1)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (parts.Length <= 1) { if (parts.Length <= 1) {
Player.Message(p, "You need to provide a new chatroom name."); return; Player.Message(p, "You need to provide a new chatroom name."); return;
} }
@ -127,8 +127,8 @@ namespace MCGalaxy.Commands.Chatting {
return; return;
} }
string room = parts[1]; string room = parts[1];
bool canDeleteForce = CheckExtraPerm(p, 3); bool canDeleteForce = HasExtraPerm(p, 3);
bool canDelete = CheckExtraPerm(p, 2); bool canDelete = HasExtraPerm(p, 2);
if (!canDelete && !canDeleteForce) { if (!canDelete && !canDeleteForce) {
Player.Message(p, "You aren't a high enough rank to delete a chatroon."); Player.Message(p, "You aren't a high enough rank to delete a chatroon.");
return; return;
@ -169,7 +169,7 @@ namespace MCGalaxy.Commands.Chatting {
} }
void HandleSpy(Player p, string[] parts) { void HandleSpy(Player p, string[] parts) {
if (!CheckExtraPerm(p, 4)) { MessageNeedExtra(p, 4); return; } if (!CheckExtraPerm(p, 4)) return;
if (parts.Length <= 1) { if (parts.Length <= 1) {
Player.Message(p, "You need to provide a chatroom name to spy on."); return; Player.Message(p, "You need to provide a chatroom name to spy on."); return;
} }
@ -192,7 +192,7 @@ namespace MCGalaxy.Commands.Chatting {
} }
void HandleForceJoin(Player p, string[] parts) { void HandleForceJoin(Player p, string[] parts) {
if (!CheckExtraPerm(p, 5)) { MessageNeedExtra(p, 5); return; } if (!CheckExtraPerm(p, 5)) return;
if (parts.Length <= 2) { if (parts.Length <= 2) {
Player.Message(p, "You need to provide a player name, then a chatroom name."); return; Player.Message(p, "You need to provide a player name, then a chatroom name."); return;
} }
@ -219,7 +219,7 @@ namespace MCGalaxy.Commands.Chatting {
} }
void HandleKick(Player p, string[] parts) { void HandleKick(Player p, string[] parts) {
if (!CheckExtraPerm(p, 6)) { MessageNeedExtra(p, 6); return; } if (!CheckExtraPerm(p, 6)) return;
if (parts.Length <= 1) { if (parts.Length <= 1) {
Player.Message(p, "You need to provide a player name."); Player.Message(p, "You need to provide a player name.");
return; return;
@ -241,7 +241,7 @@ namespace MCGalaxy.Commands.Chatting {
void HandleAll(Player p, string[] parts, string message) { void HandleAll(Player p, string[] parts, string message) {
int length = parts.Length > 1 ? parts[0].Length + 1 : parts[0].Length; int length = parts.Length > 1 ? parts[0].Length + 1 : parts[0].Length;
message = message.Substring( length ); message = message.Substring( length );
if (CheckExtraPerm(p, 7)) { if (HasExtraPerm(p, 7)) {
Chat.MessageAllChatRooms(p, message, true); Chat.MessageAllChatRooms(p, message, true);
return; return;
} }
@ -276,21 +276,21 @@ namespace MCGalaxy.Commands.Chatting {
Player.Message(p, "/chatroom join [room] - joins a room"); Player.Message(p, "/chatroom join [room] - joins a room");
Player.Message(p, "/chatroom leave [room] - leaves a room"); Player.Message(p, "/chatroom leave [room] - leaves a room");
if (CheckExtraPerm(p, 1)) if (HasExtraPerm(p, 1))
Player.Message(p, "/chatroom create [room] - creates a new room"); Player.Message(p, "/chatroom create [room] - creates a new room");
if (CheckExtraPerm(p, 3)) if (HasExtraPerm(p, 3))
Player.Message(p, "/chatroom delete [room] - deletes a room"); Player.Message(p, "/chatroom delete [room] - deletes a room");
else if (CheckExtraPerm(p, 2)) else if (HasExtraPerm(p, 2))
Player.Message(p, "/chatroom delete [room] - deletes a room only if all people have left"); Player.Message(p, "/chatroom delete [room] - deletes a room only if all people have left");
if (CheckExtraPerm(p, 4)) if (HasExtraPerm(p, 4))
Player.Message(p, "/chatroom spy [room] - spy on a chatroom"); Player.Message(p, "/chatroom spy [room] - spy on a chatroom");
if (CheckExtraPerm(p, 5)) if (HasExtraPerm(p, 5))
Player.Message(p, "/chatroom forcejoin [player] [room] - forces a player to join a room"); Player.Message(p, "/chatroom forcejoin [player] [room] - forces a player to join a room");
if (CheckExtraPerm(p, 6)) if (HasExtraPerm(p, 6))
Player.Message(p, "/chatroom kick [player] - kicks the player from their current room"); Player.Message(p, "/chatroom kick [player] - kicks the player from their current room");
if (CheckExtraPerm(p, 7)) if (HasExtraPerm(p, 7))
Player.Message(p, "/chatroom all [message] - sends a global message to all rooms"); Player.Message(p, "/chatroom all [message] - sends a global message to all rooms");
else else
Player.Message(p, "/chatroom all [message] - sends a global message to all rooms " + Player.Message(p, "/chatroom all [message] - sends a global message to all rooms " +

View File

@ -36,7 +36,7 @@ namespace MCGalaxy.Commands.Chatting {
ClearChat(p); ClearChat(p);
Player.Message(p, "%4Chat cleared."); Player.Message(p, "%4Chat cleared.");
} else { } else {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p); return; } if (!CheckExtraPerm(p, 1)) return;
Player[] players = PlayerInfo.Online.Items; Player[] players = PlayerInfo.Online.Items;
foreach (Player pl in players) { foreach (Player pl in players) {

View File

@ -39,7 +39,7 @@ namespace MCGalaxy.Commands.Chatting {
if (hugType == null) { TryMessageAction(p, args[0], "{0} %Shugged {1}.", false); return; } if (hugType == null) { TryMessageAction(p, args[0], "{0} %Shugged {1}.", false); return; }
if (hugType == "deadly") { if (hugType == "deadly") {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (p != null && who.Rank > p.Rank) { if (p != null && who.Rank > p.Rank) {
MessageTooHighRank(p, "&cdeath-hug%S", true); return; MessageTooHighRank(p, "&cdeath-hug%S", true); return;
} }

View File

@ -52,14 +52,17 @@ namespace MCGalaxy {
Player.Message(p, "When using /{0} from {2}, you must provide a {1}.", cmd, type, src); Player.Message(p, "When using /{0} from {2}, you must provide a {1}.", cmd, type, src);
} }
protected bool CheckExtraPerm(Player p, int num = 1) { protected bool HasExtraPerm(Player p, int num) {
return p == null || p.Rank >= CommandExtraPerms.MinPerm(name, num); return p == null || p.Rank >= CommandExtraPerms.MinPerm(name, num);
} }
protected void MessageNeedExtra(Player p, int num = 1) { protected bool CheckExtraPerm(Player p, int num) {
if (HasExtraPerm(p, num)) return true;
LevelPermission perm = CommandExtraPerms.MinPerm(name, num); LevelPermission perm = CommandExtraPerms.MinPerm(name, num);
string action = ExtraPerms[num - 1].Description; string action = ExtraPerms[num - 1].Description;
Formatter.MessageNeedMinPerm(p, action, perm); Formatter.MessageNeedMinPerm(p, action, perm);
return false;
} }
protected static void MessageTooHighRank(Player p, string action, bool canAffectOwnRank) { protected static void MessageTooHighRank(Player p, string action, bool canAffectOwnRank) {

View File

@ -34,7 +34,7 @@ namespace MCGalaxy.Commands.Eco {
string[] args = new string[] { "", "", "", "", "", "", "", "" }; string[] args = new string[] { "", "", "", "", "", "", "", "" };
for (int i = 0; i < Math.Min(args.Length, raw.Length); i++) for (int i = 0; i < Math.Min(args.Length, raw.Length); i++)
args[i] = raw[i]; args[i] = raw[i];
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (args[0].CaselessEq("apply")) { if (args[0].CaselessEq("apply")) {
Economy.Load(); Economy.Load();

View File

@ -33,9 +33,7 @@ namespace MCGalaxy.Commands {
if (bot == null && who == null) return; if (bot == null && who == null) return;
if (isBot) { if (isBot) {
if (!CheckExtraPerm(p, 2)) { if (!CheckExtraPerm(p, 2)) return;
MessageNeedExtra(p, 2); return;
}
if (p != null && !bot.level.BuildAccess.CheckDetailed(p)) { if (p != null && !bot.level.BuildAccess.CheckDetailed(p)) {
Player.Message(p, "Hence, you cannot change the " + type + " of that bot."); Player.Message(p, "Hence, you cannot change the " + type + " of that bot.");
@ -43,9 +41,7 @@ namespace MCGalaxy.Commands {
} }
SetBotData(p, bot, args.Length > 2 ? args[2] : ""); SetBotData(p, bot, args.Length > 2 ? args[2] : "");
} else { } else {
if (p != who && !CheckExtraPerm(p, 1)) { if (p != who && !CheckExtraPerm(p, 1)) return;
MessageNeedExtra(p, 1); return;
}
if (p != null && who.Rank > p.Rank) { if (p != null && who.Rank > p.Rank) {
MessageTooHighRank(p, "change the " + type + " of", true); return; MessageTooHighRank(p, "change the " + type + " of", true); return;
@ -65,7 +61,7 @@ namespace MCGalaxy.Commands {
if (p != null && who.Rank > p.Rank) { if (p != null && who.Rank > p.Rank) {
MessageTooHighRank(p, "change the " + type + " of", true); return; MessageTooHighRank(p, "change the " + type + " of", true); return;
} }
if (p != who && !CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (p != who && !CheckExtraPerm(p, 1)) return;
SetPlayerData(p, who, args.Length > 1 ? args[1] : ""); SetPlayerData(p, who, args.Length > 1 ? args[1] : "");
} }

View File

@ -155,7 +155,7 @@ namespace MCGalaxy.Commands.Fun {
void HandleRules(Player p, string target) { void HandleRules(Player p, string target) {
Player who = p; Player who = p;
if (target.Length > 0 && CheckExtraPerm(p, 1)) { if (target.Length > 0 && HasExtraPerm(p, 1)) {
who = PlayerInfo.FindMatches(p, target); who = PlayerInfo.FindMatches(p, target);
if (who == null) return; if (who == null) return;
@ -177,7 +177,7 @@ namespace MCGalaxy.Commands.Fun {
void HandleGenerate(Player p, CountdownGame game, string x, string y, string z) { void HandleGenerate(Player p, CountdownGame game, string x, string y, string z) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
int width, height, length; int width, height, length;
if(!int.TryParse(x, out width) || !int.TryParse(y, out height) || !int.TryParse(z, out length)) { if(!int.TryParse(x, out width) || !int.TryParse(y, out height) || !int.TryParse(z, out length)) {
@ -192,7 +192,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleEnable(Player p, CountdownGame game) { void HandleEnable(Player p, CountdownGame game) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
if (game.Status == CountdownGameStatus.Disabled) { if (game.Status == CountdownGameStatus.Disabled) {
game.Enable(p); game.Enable(p);
@ -202,7 +202,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleDisable(Player p, CountdownGame game) { void HandleDisable(Player p, CountdownGame game) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
if (game.Status == CountdownGameStatus.Disabled) { if (game.Status == CountdownGameStatus.Disabled) {
Player.Message(p, "Countdown is not running."); return; Player.Message(p, "Countdown is not running."); return;
@ -212,7 +212,7 @@ namespace MCGalaxy.Commands.Fun {
void HandleStart(Player p, CountdownGame game, string speed, string mode) { void HandleStart(Player p, CountdownGame game, string speed, string mode) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
switch (game.Status) { switch (game.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
@ -245,7 +245,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleEnd(Player p, CountdownGame game) { void HandleEnd(Player p, CountdownGame game) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
switch (game.Status) { switch (game.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
@ -258,7 +258,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleReset(Player p, CountdownGame game, string type) { void HandleReset(Player p, CountdownGame game, string type) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
switch (game.Status) { switch (game.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
@ -278,11 +278,11 @@ namespace MCGalaxy.Commands.Fun {
Player.Message(p, "%T/CD join/leave %H- joins/leaves the game"); Player.Message(p, "%T/CD join/leave %H- joins/leaves the game");
Player.Message(p, "%T/CD players %H- lists players currently playing"); Player.Message(p, "%T/CD players %H- lists players currently playing");
Player.Message(p, "%T/CD rules %H- view the rules of countdown"); Player.Message(p, "%T/CD rules %H- view the rules of countdown");
if (CheckExtraPerm(p, 1)) { if (HasExtraPerm(p, 1)) {
Player.Message(p, "%T/CD rules [player] %H- sends rules to that player."); Player.Message(p, "%T/CD rules [player] %H- sends rules to that player.");
} }
if (!CheckExtraPerm(p, 2)) return; if (!HasExtraPerm(p, 2)) return;
Player.Message(p, "%T/CD generate [width] [height] [length] %H- generates the countdown map (default is 32x32x32)"); Player.Message(p, "%T/CD generate [width] [height] [length] %H- generates the countdown map (default is 32x32x32)");
Player.Message(p, "%T/CD enable/disable %H- enables/disables countdown"); Player.Message(p, "%T/CD enable/disable %H- enables/disables countdown");
Player.Message(p, "%T/CD start <speed> <mode> %H- starts a round of countdown"); Player.Message(p, "%T/CD start <speed> <mode> %H- starts a round of countdown");

View File

@ -61,7 +61,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleStart(Player p, string[] args) { void HandleStart(Player p, string[] args) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
string map = args.Length > 1 ? args[1] : ""; string map = args.Length > 1 ? args[1] : "";
switch (Server.lava.Start(map)) { switch (Server.lava.Start(map)) {
@ -74,7 +74,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleStop(Player p, string[] args) { void HandleStop(Player p, string[] args) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
switch (Server.lava.Stop()) { switch (Server.lava.Stop()) {
case 0: Chat.MessageGlobal("Lava Survival has ended! We hope you had fun!"); return; case 0: Chat.MessageGlobal("Lava Survival has ended! We hope you had fun!"); return;
@ -84,7 +84,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleEnd(Player p, string[] args) { void HandleEnd(Player p, string[] args) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
if (!Server.lava.active) { Player.Message(p, "There isn't an active Lava Survival game."); return; } if (!Server.lava.active) { Player.Message(p, "There isn't an active Lava Survival game."); return; }
if (Server.lava.roundActive) Server.lava.EndRound(); if (Server.lava.roundActive) Server.lava.EndRound();
@ -93,7 +93,8 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleSetup(Player p, string[] args) { void HandleSetup(Player p, string[] args) {
if (!CheckExtraPerm(p, 1)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (p == null) { Player.Message(p, "/{0} setup can only be used in-game.", name); return; } if (p == null) { Player.Message(p, "/{0} setup can only be used in-game.", name); return; }
if (args.Length < 2) { SetupHelp(p); return; } if (args.Length < 2) { SetupHelp(p); return; }
if (Server.lava.active) { Player.Message(p, "You cannot configure Lava Survival while a game is active."); return; } if (Server.lava.active) { Player.Message(p, "You cannot configure Lava Survival while a game is active."); return; }
@ -263,12 +264,12 @@ namespace MCGalaxy.Commands.Fun {
Player.Message(p, "%T/LS go %H- Join the fun!"); Player.Message(p, "%T/LS go %H- Join the fun!");
Player.Message(p, "%T/LS info %H- View current round info and time."); Player.Message(p, "%T/LS info %H- View current round info and time.");
if (CheckExtraPerm(p, 1)) { if (HasExtraPerm(p, 1)) {
Player.Message(p, "%T/LS start <map> %H- Starts Lava Survival, optionally on the given map."); Player.Message(p, "%T/LS start <map> %H- Starts Lava Survival, optionally on the given map.");
Player.Message(p, "%T/LS stop %H- Stops the current Lava Survival game."); Player.Message(p, "%T/LS stop %H- Stops the current Lava Survival game.");
Player.Message(p, "%T/LS end %H- End the current round or vote."); Player.Message(p, "%T/LS end %H- End the current round or vote.");
} }
if (CheckExtraPerm(p, 2)) { if (HasExtraPerm(p, 2)) {
Player.Message(p, "%T/LS setup %H- Setup lava survival, use it for more info."); Player.Message(p, "%T/LS setup %H- Setup lava survival, use it for more info.");
} }
} }

View File

@ -112,7 +112,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void HandleCreate(Player p, string[] args) { void HandleCreate(Player p, string[] args) {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
Team team = p.Game.Team; Team team = p.Game.Team;
if (team != null) { Player.Message(p, "You need to leave your current team before you can create one."); return; } if (team != null) { Player.Message(p, "You need to leave your current team before you can create one."); return; }
if (args.Length == 1) { if (args.Length == 1) {

View File

@ -190,7 +190,7 @@ namespace MCGalaxy.Commands.Fun {
Player.Message(p, "TNT Wars Rules:"); Player.Message(p, "TNT Wars Rules:");
SendRules(p); return; SendRules(p); return;
} }
if (!CheckExtraPerm(p)) return; if (!HasExtraPerm(p, 1)) return;
switch (text[1]) { switch (text[1]) {
case "all": case "all":
@ -329,7 +329,7 @@ namespace MCGalaxy.Commands.Fun {
} }
void DoSetup(Player p, string[] text) { void DoSetup(Player p, string[] text) {
if (!CheckExtraPerm(p)) { if (!HasExtraPerm(p, 1)) {
Player.Message(p, "Sorry, you aren't a high enough rank for that!"); return; Player.Message(p, "Sorry, you aren't a high enough rank for that!"); return;
} }
@ -1138,7 +1138,7 @@ namespace MCGalaxy.Commands.Fun {
Player.Message(p, "/tw players {p} - view the current players in your game"); Player.Message(p, "/tw players {p} - view the current players in your game");
Player.Message(p, "/tw health {hp} - view your currrent amount of health left"); Player.Message(p, "/tw health {hp} - view your currrent amount of health left");
if (CheckExtraPerm(p)) { if (HasExtraPerm(p, 1)) {
Player.Message(p, "/tw rules <all/level/players/<playername>> - send the rules to yourself, all, your map, all players in your game or to one person!"); Player.Message(p, "/tw rules <all/level/players/<playername>> - send the rules to yourself, all, your map, all players in your game or to one person!");
Player.Message(p, "/tw setup {s} - setup the game (do '/tntwars setup help' for more info!"); Player.Message(p, "/tw setup {s} - setup the game (do '/tntwars setup help' for more info!");
} else { } else {

View File

@ -40,7 +40,7 @@ namespace MCGalaxy.Commands.Info {
Player who = p; Player who = p;
if (message.Length > 0) { if (message.Length > 0) {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
who = PlayerInfo.FindMatches(p, message); who = PlayerInfo.FindMatches(p, message);
if (who == null) return; if (who == null) return;
} }
@ -79,7 +79,7 @@ namespace MCGalaxy.Commands.Info {
} }
public override void Help(Player p) { public override void Help(Player p) {
if (CheckExtraPerm(p)) { if (HasExtraPerm(p, 1)) {
Player.Message(p, "%T/Rules <player>"); Player.Message(p, "%T/Rules <player>");
Player.Message(p, "%HDisplays server rules to <player>."); Player.Message(p, "%HDisplays server rules to <player>.");
Player.Message(p, "%HIf <player> is not given, the rules are displayed to you."); Player.Message(p, "%HIf <player> is not given, the rules are displayed to you.");

View File

@ -58,8 +58,7 @@ namespace MCGalaxy.Commands.Info {
else else
Player.Message(p, "Console state: &3{0}", ServerConfig.ConsoleName); Player.Message(p, "Console state: &3{0}", ServerConfig.ConsoleName);
if (CheckExtraPerm(p)) if (HasExtraPerm(p, 1)) ShowServerStats(p);
ShowServerStats(p);
} }
static int GetPlayerCount() { static int GetPlayerCount() {

View File

@ -42,7 +42,7 @@ namespace MCGalaxy.Commands.Moderation {
} }
bool messageOps = true; bool messageOps = true;
if (message.CaselessEq("silent")) { if (message.CaselessEq("silent")) {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
messageOps = false; messageOps = false;
} }

View File

@ -57,7 +57,7 @@ namespace MCGalaxy.Commands.Moderation {
} }
void HandleList(Player p, string[] args) { void HandleList(Player p, string[] args) {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
bool foundone = false; bool foundone = false;
string[] files = Directory.GetFiles("extra/reported", "*.txt"); string[] files = Directory.GetFiles("extra/reported", "*.txt");
@ -79,7 +79,7 @@ namespace MCGalaxy.Commands.Moderation {
if (args.Length != 2) { if (args.Length != 2) {
Player.Message(p, "You need to provide a player's name."); return; Player.Message(p, "You need to provide a player's name."); return;
} }
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (!Formatter.ValidName(p, args[1], "player")) return; if (!Formatter.ValidName(p, args[1], "player")) return;
if (!File.Exists("extra/reported/" + args[1] + ".txt")) { if (!File.Exists("extra/reported/" + args[1] + ".txt")) {
@ -93,7 +93,7 @@ namespace MCGalaxy.Commands.Moderation {
if (args.Length != 2) { if (args.Length != 2) {
Player.Message(p, "You need to provide a player's name."); return; Player.Message(p, "You need to provide a player's name."); return;
} }
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (!Formatter.ValidName(p, args[1], "player")) return; if (!Formatter.ValidName(p, args[1], "player")) return;
if (!File.Exists("extra/reported/" + args[1] + ".txt")) { if (!File.Exists("extra/reported/" + args[1] + ".txt")) {
@ -111,7 +111,7 @@ namespace MCGalaxy.Commands.Moderation {
} }
void HandleClear(Player p, string[] args) { void HandleClear(Player p, string[] args) {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (!Directory.Exists("extra/reportedbackups")) if (!Directory.Exists("extra/reportedbackups"))
Directory.CreateDirectory("extra/reportedbackups"); Directory.CreateDirectory("extra/reportedbackups");
string[] files = Directory.GetFiles("extra/reported", "*.txt"); string[] files = Directory.GetFiles("extra/reported", "*.txt");
@ -151,7 +151,7 @@ namespace MCGalaxy.Commands.Moderation {
public override void Help(Player p) { public override void Help(Player p) {
Player.Message(p, "%T/Report [Player] [Reason] %H- Reports that player for the given reason."); Player.Message(p, "%T/Report [Player] [Reason] %H- Reports that player for the given reason.");
if (!CheckExtraPerm(p)) return; if (!HasExtraPerm(p, 1)) return;
Player.Message(p, "%T/Report list %H- Outputs the list of reported players."); Player.Message(p, "%T/Report list %H- Outputs the list of reported players.");
Player.Message(p, "%T/Report check [Player] %H- Views report for that player."); Player.Message(p, "%T/Report check [Player] %H- Views report for that player.");
Player.Message(p, "%T/Report delete [Player] %H- Deletes report for that player."); Player.Message(p, "%T/Report delete [Player] %H- Deletes report for that player.");

View File

@ -95,7 +95,7 @@ namespace MCGalaxy.Commands.Moderation {
} }
void HandleView(Player p) { void HandleView(Player p) {
if (!CheckExtraPerm(p, 1)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (Server.reviewlist.Count == 0) { if (Server.reviewlist.Count == 0) {
Player.Message(p, "There are no players in the review queue."); return; Player.Message(p, "There are no players in the review queue."); return;
@ -128,7 +128,7 @@ namespace MCGalaxy.Commands.Moderation {
void HandleNext(Player p) { void HandleNext(Player p) {
if (p == null) { Player.Message(p, "Console cannot answer the review queue."); return; } if (p == null) { Player.Message(p, "Console cannot answer the review queue."); return; }
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
if (Server.reviewlist.Count == 0) { if (Server.reviewlist.Count == 0) {
Player.Message(p, "There are no players in the review queue."); return; Player.Message(p, "There are no players in the review queue."); return;
} }
@ -153,7 +153,7 @@ namespace MCGalaxy.Commands.Moderation {
} }
void HandleClear(Player p) { void HandleClear(Player p) {
if (!CheckExtraPerm(p, 3)) { MessageNeedExtra(p, 3); return; } if (!CheckExtraPerm(p, 3)) return;
Server.reviewlist.Clear(); Server.reviewlist.Clear();
Player.Message(p, "The review queue has been cleared"); Player.Message(p, "The review queue has been cleared");
} }

View File

@ -53,10 +53,10 @@ namespace MCGalaxy.Commands.Moderation {
ZoneAll(p.level, args[1]); ZoneAll(p.level, args[1]);
Player.Message(p, "Added zone for &b" + args[1]); Player.Message(p, "Added zone for &b" + args[1]);
} else if (args[0].CaselessEq("del") && args.Length > 1 && args[1].CaselessEq("all")) { } else if (args[0].CaselessEq("del") && args.Length > 1 && args[1].CaselessEq("all")) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) return;
DeleteAll(p); DeleteAll(p);
} else if (args[0].CaselessEq("del")) { } else if (args[0].CaselessEq("del")) {
if (!CheckExtraPerm(p, 1)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (p.canBuild) { //Checks if player can build there if (p.canBuild) { //Checks if player can build there
Player.Message(p, "Place a block where you would like to delete a zone."); Player.Message(p, "Place a block where you would like to delete a zone.");
@ -109,7 +109,7 @@ namespace MCGalaxy.Commands.Moderation {
} }
bool CheckAdd(Player p, string[] args, string cmd) { bool CheckAdd(Player p, string[] args, string cmd) {
if (!CheckExtraPerm(p, 3)) { MessageNeedExtra(p, 3); return false; } if (!CheckExtraPerm(p, 3)) return false;
if (args.Length == 1) { Help(p); return false; } if (args.Length == 1) { Help(p); return false; }
if (!Formatter.ValidName(p, args[1], "player or rank")) return false; if (!Formatter.ValidName(p, args[1], "player or rank")) return false;

View File

@ -40,7 +40,7 @@ namespace MCGalaxy.Commands.World {
PlayerActions.ChangeMap(p, Server.mainLevel); PlayerActions.ChangeMap(p, Server.mainLevel);
} }
} else { } else {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (!Formatter.ValidName(p, message, "level")) return; if (!Formatter.ValidName(p, message, "level")) return;
string map = Matcher.FindMaps(p, message); string map = Matcher.FindMaps(p, message);

View File

@ -60,10 +60,8 @@ namespace MCGalaxy.Commands.World {
value = args.Length > 2 ? args[2] : ""; value = args.Length > 2 ? args[2] : "";
} }
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (opt.CaselessEq("realmowner") && !CheckExtraPerm(p, 2)) { if (opt.CaselessEq("realmowner") && !CheckExtraPerm(p, 2)) return;
MessageNeedExtra(p, 2); return;
}
if (SetMapOption(p, lvl, opt, value)) return; if (SetMapOption(p, lvl, opt, value)) return;
Player.Message(p, "Could not find option entered."); Player.Message(p, "Could not find option entered.");

View File

@ -62,9 +62,7 @@ namespace MCGalaxy.Commands.World {
if (LevelInfo.MapExists(name)) { if (LevelInfo.MapExists(name)) {
Player.Message(p, "Level \"{0}\" already exists", name); return null; Player.Message(p, "Level \"{0}\" already exists", name); return null;
} }
if (!MapGen.IsSimpleTheme(args[4]) && !CheckExtraPerm(p)) { if (!MapGen.IsSimpleTheme(args[4]) && !CheckExtraPerm(p, 1)) return null;
MessageNeedExtra(p, 1); return null;
}
if (p != null && Interlocked.CompareExchange(ref p.GeneratingMap, 1, 0) == 1) { if (p != null && Interlocked.CompareExchange(ref p.GeneratingMap, 1, 0) == 1) {
Player.Message(p, "You are already generating a map, please wait until that map has finished generating first."); Player.Message(p, "You are already generating a map, please wait until that map has finished generating first.");

View File

@ -55,7 +55,7 @@ namespace MCGalaxy.Commands.World {
SuperRequiresArgs(name + " all", p, "level name"); return false; SuperRequiresArgs(name + " all", p, "level name"); return false;
} }
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, 1); return false; } if (!CheckExtraPerm(p, 1)) return false;
Player[] players = PlayerInfo.Online.Items; Player[] players = PlayerInfo.Online.Items;
foreach (Player who in players) { foreach (Player who in players) {
if (who.level == lvl) if (who.level == lvl)

View File

@ -86,7 +86,7 @@ namespace MCGalaxy.Commands.Building {
} }
bool CheckCommand(Player p, string message) { bool CheckCommand(Player p, string message) {
bool allCmds = CheckExtraPerm(p); bool allCmds = HasExtraPerm(p, 1);
string[] parts = message.SplitSpaces(2); string[] parts = message.SplitSpaces(2);
string alias = parts[0], cmdArgs = ""; string alias = parts[0], cmdArgs = "";
Command.Search(ref alias, ref cmdArgs); Command.Search(ref alias, ref cmdArgs);

View File

@ -76,7 +76,7 @@ namespace MCGalaxy.Commands.Building {
} }
void UndoPhysics(Player p, TimeSpan delta) { void UndoPhysics(Player p, TimeSpan delta) {
if (!CheckExtraPerm(p, 1)) { MessageNeedExtra(p, 1); return; } if (!CheckExtraPerm(p, 1)) return;
if (p != null && !p.group.CanExecute("physics")) { if (p != null && !p.group.CanExecute("physics")) {
Player.Message(p, "You can only undo physics if you can use %T/Physics."); return; Player.Message(p, "You can only undo physics if you can use %T/Physics."); return;
} }

View File

@ -36,7 +36,7 @@ namespace MCGalaxy.Commands.Misc {
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
if (message.Length == 0) { Help(p); return; } if (message.Length == 0) { Help(p); return; }
if (message.CaselessEq("all")) { if (message.CaselessEq("all")) {
if (CheckExtraPerm(p)) SummonAll(p); if (HasExtraPerm(p, 1)) SummonAll(p);
} else { } else {
SummonPlayer(p, message); SummonPlayer(p, message);
} }

View File

@ -58,7 +58,7 @@ namespace MCGalaxy.Commands.Misc {
string name = args[1]; string name = args[1];
if (cmd == "create" || cmd == "add") { if (cmd == "create" || cmd == "add") {
if (CheckExtraPerms && !CheckExtraPerm(p, 1)) { MessageNeedExtra(p, 1); return; } if (CheckExtraPerms && !CheckExtraPerm(p, 1)) return;
if (warps.Exists(name)) { Player.Message(p, "{0} already exists", group); return; } if (warps.Exists(name)) { Player.Message(p, "{0} already exists", group); return; }
Player who = args.Length == 2 ? p : PlayerInfo.FindMatches(p, args[2]); Player who = args.Length == 2 ? p : PlayerInfo.FindMatches(p, args[2]);
@ -67,14 +67,14 @@ namespace MCGalaxy.Commands.Misc {
warps.Create(name, who); warps.Create(name, who);
Player.Message(p, "{0} {1} created.", group, name); Player.Message(p, "{0} {1} created.", group, name);
} else if (cmd == "delete" || cmd == "remove") { } else if (cmd == "delete" || cmd == "remove") {
if (CheckExtraPerms && !CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (CheckExtraPerms && !CheckExtraPerm(p, 2)) return;
Warp warp = Matcher.FindWarps(p, warps, name); Warp warp = Matcher.FindWarps(p, warps, name);
if (warp == null) return; if (warp == null) return;
warps.Remove(warp, p); warps.Remove(warp, p);
Player.Message(p, "{0} {1} deleted.", group, warp.Name); Player.Message(p, "{0} {1} deleted.", group, warp.Name);
} else if (cmd == "move" || cmd == "update") { } else if (cmd == "move" || cmd == "update") {
if (CheckExtraPerms && !CheckExtraPerm(p, 3)) { MessageNeedExtra(p, 3); return; } if (CheckExtraPerms && !CheckExtraPerm(p, 3)) return;
Warp warp = Matcher.FindWarps(p, warps, name); Warp warp = Matcher.FindWarps(p, warps, name);
if (warp == null) return; if (warp == null) return;
@ -94,11 +94,11 @@ namespace MCGalaxy.Commands.Misc {
public override void Help(Player p) { public override void Help(Player p) {
Player.Message(p, "%T/Warp [name] %H- Move to that warp"); Player.Message(p, "%T/Warp [name] %H- Move to that warp");
Player.Message(p, "%T/Warp list %H- List all the warps"); Player.Message(p, "%T/Warp list %H- List all the warps");
if (CheckExtraPerm(p, 1)) if (HasExtraPerm(p, 1))
Player.Message(p, "%T/Warp create [name] <player> %H- Create a warp, if a <player> is given, it will be created where they are"); Player.Message(p, "%T/Warp create [name] <player> %H- Create a warp, if a <player> is given, it will be created where they are");
if (CheckExtraPerm(p, 2)) if (HasExtraPerm(p, 2))
Player.Message(p, "%T/Warp delete [name] %H- Deletes a warp"); Player.Message(p, "%T/Warp delete [name] %H- Deletes a warp");
if (CheckExtraPerm(p, 3)) if (HasExtraPerm(p, 3))
Player.Message(p, "%T/Warp move [name] <player> %H- Moves a warp, if a <player> is given, it will be created where they are"); Player.Message(p, "%T/Warp move [name] <player> %H- Moves a warp, if a <player> is given, it will be created where they are");
} }
} }

View File

@ -29,7 +29,7 @@ namespace MCGalaxy.Commands.Misc {
protected override bool CheckExtraPerms { get { return false; } } protected override bool CheckExtraPerms { get { return false; } }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
UseCore(p, message, p.Waypoints, "Waypoint"); UseCore(p, message, p.Waypoints, "Waypoint");
} }
public override void Help(Player p) { public override void Help(Player p) {