diff --git a/bungee.yml b/bungee.yml
index ad19753..f3a01fa 100644
--- a/bungee.yml
+++ b/bungee.yml
@@ -1,4 +1,4 @@
name: AuxProtectBungee
main: dev.heliosares.auxprotect.bungee.AuxProtectBungee
-version: 1.1.2
+version: 1.1.3-pre1
author: Heliosares
\ No newline at end of file
diff --git a/en-us.yml b/en-us.yml
index 7b2678a..089910e 100644
--- a/en-us.yml
+++ b/en-us.yml
@@ -4,6 +4,7 @@ no-permission: '&cYou don''t have permission for that.'
no-permission-flag: '&cYou don''t have permission for that flag.'
lookup-invalid-parameter: '&cInvalid parameter: %s'
lookup-invalid-syntax: '&cInvalid syntax.'
+lookup-invalid-notenough: '&cNot enough arguments.'
lookup-error: '&cAn error occured'
lookup-unknown-world: '&cUnknown world: %s'
lookup-looking: '&9Searching database...'
@@ -16,6 +17,7 @@ lookup-toomany: '&cToo many entries. Try narrowing your search. (Over %d entries
lookup-incompatible-tables: '&cThose actions are incompatible.'
lookup-action-negate: '&cYou cannot negate actions.'
lookup-action-perm: '&cYou do not have permission to lookup that action.'
+lookup-action-none: '&cYou must specify an action.'
command-help-1: '&cYou don''t have a lookup to page through.'
purge-purging: '&9Purging ''%s''...'
purge-uids: '&9Purging unused UIDs...'
diff --git a/plugin.yml b/plugin.yml
index 2c30b92..4c79ac4 100644
--- a/plugin.yml
+++ b/plugin.yml
@@ -1,5 +1,5 @@
name: AuxProtect
-version: 1.1.2
+version: 1.1.3-pre1
main: dev.heliosares.auxprotect.AuxProtect
description: A plugin designed to supplement CoreProtect in a few ways.
api-version: 1.13
diff --git a/pom.xml b/pom.xml
index 057b2d3..87d9e86 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
AuxProtect
AuxProtect
- 1.1.2
+ 1.1.3-pre1
AuxProtect
${project.artifactId}-${project.version}
diff --git a/src/dev/heliosares/auxprotect/command/LookupCommand.java b/src/dev/heliosares/auxprotect/command/LookupCommand.java
index 028b8e6..75d198d 100644
--- a/src/dev/heliosares/auxprotect/command/LookupCommand.java
+++ b/src/dev/heliosares/auxprotect/command/LookupCommand.java
@@ -12,6 +12,7 @@ import dev.heliosares.auxprotect.database.DbEntry;
import dev.heliosares.auxprotect.database.EntryAction;
import dev.heliosares.auxprotect.database.Results;
import dev.heliosares.auxprotect.database.SQLManager.LookupException;
+import dev.heliosares.auxprotect.database.Table;
import dev.heliosares.auxprotect.utils.ActivitySolver;
import dev.heliosares.auxprotect.utils.MoneySolver;
import dev.heliosares.auxprotect.utils.MyPermission;
@@ -202,7 +203,19 @@ public class LookupCommand {
return;
}
String param = split[1];
- if (token.equalsIgnoreCase("time") || token.equalsIgnoreCase("before")
+ if (token.equalsIgnoreCase("action")) {
+ for (String actionStr : param.split(",")) {
+ EntryAction action = EntryAction.getAction(actionStr);
+ if (action == null) {
+ continue;
+ }
+ if (!MyPermission.LOOKUP.hasPermission("action." + action.toString().toLowerCase(),
+ sender)) {
+ sender.sendMessage(String.format(plugin.translate("lookup-action-perm"), param));
+ return;
+ }
+ }
+ } else if (token.equalsIgnoreCase("time") || token.equalsIgnoreCase("before")
|| token.equalsIgnoreCase("after")) {
if (param.contains("-")) {
String[] range = param.split("-");
@@ -252,9 +265,18 @@ public class LookupCommand {
params.put(token, param.toLowerCase());
}
if (params.size() < 1) {
- sender.sendMessage(plugin.translate("purge-error-notenough"));
+ sender.sendMessage(plugin.translate("lookup-invalid-notenough"));
return;
}
+ if (!params.containsKey("action")) {
+ for (EntryAction action : EntryAction.values()) {
+ if (action.getTable() == Table.AUXPROTECT_MAIN && !MyPermission.LOOKUP
+ .hasPermission("action." + action.toString().toLowerCase(), sender)) {
+ sender.sendMessage(plugin.translate("lookup-action-none"));
+ return;
+ }
+ }
+ }
if (bw) {
String user = params.get("user");
final String targetOld = params.get("target");
diff --git a/src/dev/heliosares/auxprotect/database/SQLManager.java b/src/dev/heliosares/auxprotect/database/SQLManager.java
index af3c494..362f28d 100644
--- a/src/dev/heliosares/auxprotect/database/SQLManager.java
+++ b/src/dev/heliosares/auxprotect/database/SQLManager.java
@@ -902,9 +902,10 @@ public class SQLManager {
}
String build = "";
boolean escape = false;
+ final boolean allowEscape = key.equalsIgnoreCase("target") || key.equalsIgnoreCase("data");
ArrayList values = new ArrayList<>();
for (char current : value.toCharArray()) {
- if (current == '\\') {
+ if (allowEscape && current == '\\') {
escape = true;
continue;
}
@@ -970,12 +971,6 @@ public class SQLManager {
throw new LookupException(LookupExceptionType.UNKNOWN_ACTION,
String.format(plugin.translate("lookup-unknownaction"), param));
} else {
- /*
- * TODO if (sender != null) { if
- * (!MyPermission.LOOKUP.hasPermission(action.toString().toLowerCase(), sender))
- * { sender.sendMessage(String.format(plugin.translate("lookup-action-perm"),
- * param)); return null; } }
- */
if (table == null) {
table = action.getTable();
} else {
diff --git a/src/dev/heliosares/auxprotect/utils/MyPermission.java b/src/dev/heliosares/auxprotect/utils/MyPermission.java
index b2d6d17..e044b1a 100644
--- a/src/dev/heliosares/auxprotect/utils/MyPermission.java
+++ b/src/dev/heliosares/auxprotect/utils/MyPermission.java
@@ -19,27 +19,19 @@ public enum MyPermission {
return player.hasPermission(node);
}
- public boolean hasPermission(org.bukkit.command.CommandSender player) {
+ public boolean hasPermission(MySender player) {
return player.hasPermission(node);
}
- public boolean hasPermission(MySender player) {
- return player.hasPermission(node);
+ public boolean hasPermission(String dot, MySender player) {
+ return player.hasPermission(node + "." + dot);
}
public boolean hasPermission(net.md_5.bungee.api.CommandSender player) {
return player.hasPermission(node);
}
- public boolean hasPermission(String dot, Player player) {
- return player.hasPermission(node + "." + dot);
- }
-
- public boolean hasPermission(String dot, org.bukkit.command.CommandSender player) {
- return player.hasPermission(node + "." + dot);
- }
-
- public boolean hasPermission(String dot, net.md_5.bungee.api.CommandSender player) {
- return player.hasPermission(node + "." + dot);
+ public boolean hasPermission(org.bukkit.command.CommandSender player) {
+ return player.hasPermission(node);
}
}