Make /review use extra command permissions instead.

This commit is contained in:
UnknownShadow200 2016-06-18 15:49:47 +10:00
parent 996d2cd8d6
commit 12c522c58e

View File

@ -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 <enter/view/leave/next/clear>");
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.");
}
}