forked from Minecraft/QoL
Added auditor and auditable perms. Users with the auditor perm can run audited commands on auditable players without being audited.
parent
cae4925511
commit
762346cf37
|
@ -18,6 +18,7 @@ import org.dynmap.DynmapAPI;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.Collection;
|
||||
|
||||
public class CommandPreprocessListener implements Listener {
|
||||
|
||||
|
@ -34,7 +35,6 @@ public class CommandPreprocessListener implements Listener {
|
|||
|
||||
String command = event.getMessage();
|
||||
String base = command.split(" ")[0].substring(1).toLowerCase(); // Strip the slash
|
||||
String auditBypassPerm = "qol.audit.bypass." + base;
|
||||
|
||||
Player sender = event.getPlayer();
|
||||
DynmapAPI dynmap = plugin.getDynmap();
|
||||
|
@ -79,7 +79,9 @@ public class CommandPreprocessListener implements Listener {
|
|||
}
|
||||
|
||||
// Command Auditing
|
||||
if (sender.hasPermission("qol.audit") && !sender.hasPermission(auditBypassPerm) && plugin.getConfig().getBoolean("audit.enabled")) {
|
||||
if (sender.hasPermission("qol.audit") && plugin.getConfig().getBoolean("audit.enabled")) {
|
||||
if (!sender.hasPermission("qol.auditor") && !targetIsAuditable(command)) {
|
||||
|
||||
boolean auditable = false;
|
||||
|
||||
for (String audit : QoL.getAudits()) {
|
||||
|
@ -101,6 +103,7 @@ public class CommandPreprocessListener implements Listener {
|
|||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Links
|
||||
for (LinkCommand linkCommand : QoL.getLinks()) {
|
||||
|
@ -115,6 +118,21 @@ public class CommandPreprocessListener implements Listener {
|
|||
|
||||
}
|
||||
|
||||
public boolean targetIsAuditable(String command) {
|
||||
String[] commandSplit = command.split(" ");
|
||||
Collection<? extends Player> players = plugin.getServer().getOnlinePlayers();
|
||||
|
||||
for (String param : commandSplit) {
|
||||
for (Player p : players) {
|
||||
if (p.getName().toLowerCase().equals(param)) {
|
||||
return p.hasPermission("qol.auditable");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public String noSlash(String command) {
|
||||
return command.startsWith("/") ? command.substring(1) : command;
|
||||
}
|
||||
|
|
|
@ -65,7 +65,10 @@ permissions:
|
|||
qol.shadowmute:
|
||||
description: Ability to use the Shadow Mute command
|
||||
default: op
|
||||
qol.audit:
|
||||
qol.auditable:
|
||||
description: Audits command usage
|
||||
default: op
|
||||
qol.auditor:
|
||||
description: Audits command usage
|
||||
default: op
|
||||
qol.tpconfirm:
|
||||
|
|
Loading…
Reference in New Issue