From 12c522c58e9740060ae0b0127ff98ea75c33a917 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Sat, 18 Jun 2016 15:49:47 +1000 Subject: [PATCH] Make /review use extra command permissions instead. --- Commands/Moderation/CmdReview.cs | 53 ++++++++++---------------------- 1 file changed, 16 insertions(+), 37 deletions(-) diff --git a/Commands/Moderation/CmdReview.cs b/Commands/Moderation/CmdReview.cs index 6da3d81c9..9336c63e3 100644 --- a/Commands/Moderation/CmdReview.cs +++ b/Commands/Moderation/CmdReview.cs @@ -20,15 +20,20 @@ */ using System; -namespace MCGalaxy.Commands -{ - public sealed class CmdReview : Command - { +namespace MCGalaxy.Commands { + public sealed class CmdReview : Command { public override string name { get { return "review"; } } public override string shortcut { get { return "rvw"; } } public override string type { get { return CommandTypes.Moderation; } } public override bool museumUsable { get { return true; } } public override LevelPermission defaultRank { get { return LevelPermission.Guest; } } + public override CommandPerm[] AdditionalPerms { + get { return new[] { + new CommandPerm(LevelPermission.Operator, "+ can see the review queue"), + new CommandPerm(LevelPermission.Operator, "+ can teleport to next in review queue"), + new CommandPerm(LevelPermission.Operator, "+ can clear the review queue"), + }; } + } public CmdReview() { } public override void Use(Player p, string message) { @@ -58,12 +63,6 @@ namespace MCGalaxy.Commands return; } - Group grp = Group.findPerm(Server.reviewenter); - if (grp == null) { MessageNoPerm(p, Server.reviewenter); return; } - if (grp.Permission > p.group.Permission) { - MessageNeedMinPerm(p, "enter the review queue", (int)grp.Permission); return; - } - foreach (string name in Server.reviewlist) { if (name != p.name) continue; Player.Message(p, "You already entered the review queue!"); return; @@ -95,14 +94,10 @@ namespace MCGalaxy.Commands } void HandleView(Player p) { - Group grp = Group.findPerm(Server.reviewview); - if (grp == null) { MessageNoPerm(p, Server.reviewview); return; } - - if (p != null && grp.Permission > p.group.Permission) { - MessageNeedMinPerm(p, "view the review queue", (int)grp.Permission); return; - } + if (!CheckExtraPerm(p, 1)) { MessageNeedPerms(p, "can view the review queue.", 1); return; } + 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; } Player.Message(p, "&9Players in the review queue:"); @@ -116,12 +111,6 @@ namespace MCGalaxy.Commands void HandleLeave(Player p) { if (p == null) { Player.Message(p, "Console cannot leave the review queue."); return; } - Group grp = Group.findPerm(Server.reviewleave); - if (grp == null) { MessageNoPerm(p, Server.reviewleave); return; } - - if (grp.Permission > p.group.Permission) { - MessageNeedMinPerm(p, "leave the review queue", (int)grp.Permission); return; - } bool inQueue = false; foreach (string who in Server.reviewlist) @@ -136,12 +125,7 @@ namespace MCGalaxy.Commands void HandleNext(Player p) { if (p == null) { Player.Message(p, "Console cannot answer the review queue."); return; } - Group grp = Group.findPerm(Server.reviewnext); - if (grp == null) { MessageNoPerm(p, Server.reviewnext); } - - if (grp.Permission > p.group.Permission) { - MessageNeedMinPerm(p, "answer the review queue", (int)grp.Permission); return; - } + if (!CheckExtraPerm(p, 2)) { MessageNeedPerms(p, "can teleport to next in the review queue.", 2); return; } if (Server.reviewlist.Count == 0) { Player.Message(p, "There are no players in the review queue."); return; } @@ -149,7 +133,7 @@ namespace MCGalaxy.Commands string user = Server.reviewlist[0]; Player who = PlayerInfo.FindExact(user); if (who == null) { - Player.Message(p, "Player " + user + " doesn't exist or is offline. " + user + " has been removed from the review queue"); + Player.Message(p, "Player " + user + " doesn't exist or is offline, and was removed from the review queue"); Server.reviewlist.Remove(user); return; } else if (who == p) { @@ -165,12 +149,7 @@ namespace MCGalaxy.Commands } void HandleClear(Player p) { - Group grp = Group.findPerm(Server.reviewclear); - if (grp == null) { MessageNoPerm(p, Server.reviewclear); return; } - - if (p != null && grp.Permission > p.group.Permission) { - MessageNeedMinPerm(p, "clear the review queue", (int)grp.Permission); return; - } + if (!CheckExtraPerm(p, 3)) { MessageNeedPerms(p, "can clear the review queue.", 3); return; } Server.reviewlist.Clear(); Player.Message(p, "The review queue has been cleared"); } @@ -193,7 +172,7 @@ namespace MCGalaxy.Commands public override void Help(Player p) { Player.Message(p, "%T/review "); - Player.Message(p, "%HLets you enter, view, leave, or clear the reviewlist or" + + Player.Message(p, "%HLets you enter, view, leave, or clear the review queue, or " + "teleport you to the next player in the review queue."); } }