Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Make testPermission correctly check WEPIF/whatevermethodthecommandsma…

…nagerisusing for permissions in the command
  • Loading branch information...
commit 0cb0358bd2cc364a212dfed5fb5ab98b7af1f6c0 1 parent b938aa0
@zml2008 zml2008 authored
Showing with 30 additions and 0 deletions.
  1. +30 −0 src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java
View
30 src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java
@@ -19,7 +19,10 @@
package com.sk89q.bukkit.util;
+import com.sk89q.minecraft.util.commands.CommandsManager;
import com.sk89q.util.StringUtil;
+import com.sk89q.wepif.PermissionsResolverManager;
+import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginIdentifiableCommand;
@@ -72,4 +75,31 @@ public void setPermissions(String[] permissions) {
public Plugin getPlugin() {
return owningPlugin;
}
+
+ @Override
+ public boolean testPermissionSilent(CommandSender sender) {
+ if (permissions == null || permissions.length == 0) {
+ return true;
+ }
+
+ if (registeredWith instanceof CommandsManager<?>) {
+ try {
+ for (String permission : permissions) {
+ if (((CommandsManager<?>) registeredWith).hasPermission(sender, permission)) {
+ return true;
+ }
+ }
+ return false;
+ } catch (Throwable ignore) {
+ }
+ } else if (PermissionsResolverManager.isInitialized() && sender instanceof OfflinePlayer) {
+ for (String permission : permissions) {
+ if (PermissionsResolverManager.getInstance().hasPermission((OfflinePlayer) sender, permission)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ return super.testPermissionSilent(sender);
+ }
}
Please sign in to comment.
Something went wrong with that request. Please try again.