From e05bdf17da2a4a67dc32a8a5eb7e6168ba1e6cdb Mon Sep 17 00:00:00 2001 From: Sleaker Date: Mon, 10 Sep 2018 22:21:35 -0700 Subject: [PATCH] remove deprecated method calls from older permission systems. --- .../plugins/Permission_GroupManager.java | 766 +++++++++--------- .../plugins/Permission_OverPermissions.java | 466 +++++------ .../plugins/Permission_Permissions3.java | 16 +- .../plugins/Permission_PermissionsEx.java | 30 - 4 files changed, 589 insertions(+), 689 deletions(-) diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java b/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java index ecf2993..df53ee8 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_GroupManager.java @@ -1,403 +1,363 @@ -/* This file is part of Vault. - - Vault is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Vault is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with Vault. If not, see . - */ -package net.milkbowl.vault.permission.plugins; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -import net.milkbowl.vault.permission.Permission; - -import org.anjocaido.groupmanager.GroupManager; -import org.anjocaido.groupmanager.data.Group; -import org.anjocaido.groupmanager.data.User; -import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder; -import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.server.PluginDisableEvent; -import org.bukkit.event.server.PluginEnableEvent; -import org.bukkit.permissions.PermissionAttachment; -import org.bukkit.permissions.PermissionAttachmentInfo; -import org.bukkit.plugin.Plugin; - -public class Permission_GroupManager extends Permission { - - private final String name = "GroupManager"; - private GroupManager groupManager; - - public Permission_GroupManager(Plugin plugin) { - this.plugin = plugin; - Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); - - // Load Plugin in case it was loaded before - if (groupManager == null) { - Plugin perms = plugin.getServer().getPluginManager().getPlugin("GroupManager"); - if (perms != null && perms.isEnabled()) { - groupManager = (GroupManager) perms; - log.info(String.format("[%s][Permission] %s hooked.", plugin.getDescription().getName(), name)); - } - } - } - - public class PermissionServerListener implements Listener { - Permission_GroupManager permission = null; - - public PermissionServerListener(Permission_GroupManager permission) { - this.permission = permission; - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPluginEnable(PluginEnableEvent event) { - if (permission.groupManager == null) { - Plugin p = event.getPlugin(); - if (p.getDescription().getName().equals("GroupManager")) { - permission.groupManager = (GroupManager) p; - log.info(String.format("[%s][Permission] %s hooked.", plugin.getDescription().getName(), permission.name)); - } - } - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPluginDisable(PluginDisableEvent event) { - if (permission.groupManager != null) { - if (event.getPlugin().getDescription().getName().equals("GroupManager")) { - permission.groupManager = null; - log.info(String.format("[%s][Permission] %s un-hooked.", plugin.getDescription().getName(), permission.name)); - } - } - } - } - - @Override - public String getName() { - return this.name; - } - - @Override - public boolean isEnabled() { - return groupManager != null && groupManager.isEnabled(); - } - - @Override - public boolean playerHas(String worldName, String playerName, String permission) { - AnjoPermissionsHandler handler; - if (worldName == null) { - handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); - } - else { - handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); - } - if (handler == null) { - return false; - } - return handler.permission(playerName, permission); - } - - @Override - public boolean playerAdd(String worldName, String playerName, String permission) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - - User user = owh.getUser(playerName); - if (user == null) { - return false; - } - - user.addPermission(permission); - Player p = Bukkit.getPlayer(playerName); - if (p != null) { - GroupManager.BukkitPermissions.updatePermissions(p); - } - return true; - } - - @Override - public boolean playerRemove(String worldName, String playerName, String permission) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - - User user = owh.getUser(playerName); - if (user == null) { - return false; - } - - user.removePermission(permission); - Player p = Bukkit.getPlayer(playerName); - if (p != null) { - GroupManager.BukkitPermissions.updatePermissions(p); - } - return true; - } - - @Override - public boolean groupHas(String worldName, String groupName, String permission) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getDefaultWorld(); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - - Group group = owh.getGroup(groupName); - if (group == null) { - return false; - } - - return group.hasSamePermissionNode(permission); - } - - @Override - public boolean groupAdd(String worldName, String groupName, String permission) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getDefaultWorld(); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - - Group group = owh.getGroup(groupName); - if (group == null) { - return false; - } - - group.addPermission(permission); - return true; - } - - @Override - public boolean groupRemove(String worldName, String groupName, String permission) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getDefaultWorld(); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - - Group group = owh.getGroup(groupName); - if (group == null) { - return false; - } - - group.removePermission(permission); - return true; - } - - @Override - public boolean playerInGroup(String worldName, String playerName, String groupName) { - AnjoPermissionsHandler handler; - if (worldName == null) { - handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); - } else { - handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); - } - if (handler == null) { - return false; - } - return handler.inGroup(playerName, groupName); - } - - @Override - public boolean playerAddGroup(String worldName, String playerName, String groupName) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - User user = owh.getUser(playerName); - if (user == null) { - return false; - } - Group group = owh.getGroup(groupName); - if (group == null) { - return false; - } - if (user.getGroup().equals(owh.getDefaultGroup())) { - user.setGroup(group); - } else if (group.getInherits().contains(user.getGroup().getName().toLowerCase())) { - user.setGroup(group); - } else { - user.addSubGroup(group); - } - Player p = Bukkit.getPlayer(playerName); - if (p != null) { - GroupManager.BukkitPermissions.updatePermissions(p); - } - return true; - } - - @Override - public boolean playerRemoveGroup(String worldName, String playerName, String groupName) { - OverloadedWorldHolder owh; - if (worldName == null) { - owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); - } else { - owh = groupManager.getWorldsHolder().getWorldData(worldName); - } - if (owh == null) { - return false; - } - User user = owh.getUser(playerName); - if (user == null) { - return false; - } - boolean success = false; - if (user.getGroup().getName().equalsIgnoreCase(groupName)) { - user.setGroup(owh.getDefaultGroup()); - success = true; - } else { - Group group = owh.getGroup(groupName); - if (group != null) { - success = user.removeSubGroup(group); - } - } - if (success) { - Player p = Bukkit.getPlayer(playerName); - if (p != null) { - GroupManager.BukkitPermissions.updatePermissions(p); - } - } - return success; - } - - @Override - public String[] getPlayerGroups(String worldName, String playerName) { - AnjoPermissionsHandler handler; - if (worldName == null) { - handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); - } else { - handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); - } - if (handler == null) { - return null; - } - return handler.getGroups(playerName); - } - - @Override - public String getPrimaryGroup(String worldName, String playerName) { - AnjoPermissionsHandler handler; - if (worldName == null) { - handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); - } else { - handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); - } - if (handler == null) { - return null; - } - return handler.getGroup(playerName); - } - - @Override - public boolean playerAddTransient(String world, String player, String permission) { - if (world != null) { - throw new UnsupportedOperationException(getName() + " does not support World based transient permissions!"); - } - Player p = plugin.getServer().getPlayer(player); - if (p == null) { - throw new UnsupportedOperationException(getName() + " does not support offline player transient permissions!"); - } - - for (PermissionAttachmentInfo paInfo : p.getEffectivePermissions()) { - if (paInfo.getAttachment().getPlugin().equals(plugin)) { - paInfo.getAttachment().setPermission(permission, true); - return true; - } - } - - PermissionAttachment attach = p.addAttachment(plugin); - attach.setPermission(permission, true); - - return true; - } - - @Override - public boolean playerRemoveTransient(String world, String player, String permission) { - if (world != null) { - throw new UnsupportedOperationException(getName() + " does not support World based transient permissions!"); - } - Player p = plugin.getServer().getPlayer(player); - if (p == null) { - throw new UnsupportedOperationException(getName() + " does not support offline player transient permissions!"); - } - for (PermissionAttachmentInfo paInfo : p.getEffectivePermissions()) { - if (paInfo.getAttachment().getPlugin().equals(plugin)) { - return paInfo.getAttachment().getPermissions().remove(permission); - } - } - return false; - } - - @Override - public String[] getGroups() { - Set groupNames = new HashSet(); - for (World world : Bukkit.getServer().getWorlds()) { - OverloadedWorldHolder owh = groupManager.getWorldsHolder().getWorldData(world.getName()); - if (owh == null) { - continue; - } - Collection groups = owh.getGroupList(); - if (groups == null) { - continue; - } - for (Group group : groups) { - groupNames.add(group.getName()); - } - } - return groupNames.toArray(new String[0]); - } - - @Override - public boolean hasSuperPermsCompat() { - return true; - } - - @Override - public boolean hasGroupSupport() { - return true; - } -} +/* This file is part of Vault. + + Vault is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Vault is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with Vault. If not, see . + */ +package net.milkbowl.vault.permission.plugins; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +import net.milkbowl.vault.permission.Permission; + +import org.anjocaido.groupmanager.GroupManager; +import org.anjocaido.groupmanager.data.Group; +import org.anjocaido.groupmanager.data.User; +import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder; +import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.permissions.PermissionAttachment; +import org.bukkit.permissions.PermissionAttachmentInfo; +import org.bukkit.plugin.Plugin; + +public class Permission_GroupManager extends Permission { + + private final String name = "GroupManager"; + private GroupManager groupManager; + + public Permission_GroupManager(Plugin plugin) { + this.plugin = plugin; + Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); + + // Load Plugin in case it was loaded before + if (groupManager == null) { + Plugin perms = plugin.getServer().getPluginManager().getPlugin("GroupManager"); + if (perms != null && perms.isEnabled()) { + groupManager = (GroupManager) perms; + log.info(String.format("[%s][Permission] %s hooked.", plugin.getDescription().getName(), name)); + } + } + } + + public class PermissionServerListener implements Listener { + Permission_GroupManager permission = null; + + public PermissionServerListener(Permission_GroupManager permission) { + this.permission = permission; + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginEnable(PluginEnableEvent event) { + if (permission.groupManager == null) { + Plugin p = event.getPlugin(); + if (p.getDescription().getName().equals("GroupManager")) { + permission.groupManager = (GroupManager) p; + log.info(String.format("[%s][Permission] %s hooked.", plugin.getDescription().getName(), permission.name)); + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) { + if (permission.groupManager != null) { + if (event.getPlugin().getDescription().getName().equals("GroupManager")) { + permission.groupManager = null; + log.info(String.format("[%s][Permission] %s un-hooked.", plugin.getDescription().getName(), permission.name)); + } + } + } + } + + @Override + public String getName() { + return this.name; + } + + @Override + public boolean isEnabled() { + return groupManager != null && groupManager.isEnabled(); + } + + @Override + public boolean playerHas(String worldName, String playerName, String permission) { + AnjoPermissionsHandler handler; + if (worldName == null) { + handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); + } + else { + handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); + } + if (handler == null) { + return false; + } + return handler.permission(playerName, permission); + } + + @Override + public boolean playerAdd(String worldName, String playerName, String permission) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + + User user = owh.getUser(playerName); + if (user == null) { + return false; + } + + user.addPermission(permission); + Player p = Bukkit.getPlayer(playerName); + if (p != null) { + GroupManager.BukkitPermissions.updatePermissions(p); + } + return true; + } + + @Override + public boolean playerRemove(String worldName, String playerName, String permission) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + + User user = owh.getUser(playerName); + if (user == null) { + return false; + } + + user.removePermission(permission); + Player p = Bukkit.getPlayer(playerName); + if (p != null) { + GroupManager.BukkitPermissions.updatePermissions(p); + } + return true; + } + + @Override + public boolean groupHas(String worldName, String groupName, String permission) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getDefaultWorld(); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + + Group group = owh.getGroup(groupName); + if (group == null) { + return false; + } + + return group.hasSamePermissionNode(permission); + } + + @Override + public boolean groupAdd(String worldName, String groupName, String permission) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getDefaultWorld(); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + + Group group = owh.getGroup(groupName); + if (group == null) { + return false; + } + + group.addPermission(permission); + return true; + } + + @Override + public boolean groupRemove(String worldName, String groupName, String permission) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getDefaultWorld(); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + + Group group = owh.getGroup(groupName); + if (group == null) { + return false; + } + + group.removePermission(permission); + return true; + } + + @Override + public boolean playerInGroup(String worldName, String playerName, String groupName) { + AnjoPermissionsHandler handler; + if (worldName == null) { + handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); + } else { + handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); + } + if (handler == null) { + return false; + } + return handler.inGroup(playerName, groupName); + } + + @Override + public boolean playerAddGroup(String worldName, String playerName, String groupName) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + User user = owh.getUser(playerName); + if (user == null) { + return false; + } + Group group = owh.getGroup(groupName); + if (group == null) { + return false; + } + if (user.getGroup().equals(owh.getDefaultGroup())) { + user.setGroup(group); + } else if (group.getInherits().contains(user.getGroup().getName().toLowerCase())) { + user.setGroup(group); + } else { + user.addSubGroup(group); + } + Player p = Bukkit.getPlayer(playerName); + if (p != null) { + GroupManager.BukkitPermissions.updatePermissions(p); + } + return true; + } + + @Override + public boolean playerRemoveGroup(String worldName, String playerName, String groupName) { + OverloadedWorldHolder owh; + if (worldName == null) { + owh = groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName); + } else { + owh = groupManager.getWorldsHolder().getWorldData(worldName); + } + if (owh == null) { + return false; + } + User user = owh.getUser(playerName); + if (user == null) { + return false; + } + boolean success = false; + if (user.getGroup().getName().equalsIgnoreCase(groupName)) { + user.setGroup(owh.getDefaultGroup()); + success = true; + } else { + Group group = owh.getGroup(groupName); + if (group != null) { + success = user.removeSubGroup(group); + } + } + if (success) { + Player p = Bukkit.getPlayer(playerName); + if (p != null) { + GroupManager.BukkitPermissions.updatePermissions(p); + } + } + return success; + } + + @Override + public String[] getPlayerGroups(String worldName, String playerName) { + AnjoPermissionsHandler handler; + if (worldName == null) { + handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); + } else { + handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); + } + if (handler == null) { + return null; + } + return handler.getGroups(playerName); + } + + @Override + public String getPrimaryGroup(String worldName, String playerName) { + AnjoPermissionsHandler handler; + if (worldName == null) { + handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName); + } else { + handler = groupManager.getWorldsHolder().getWorldPermissions(worldName); + } + if (handler == null) { + return null; + } + return handler.getGroup(playerName); + } + + @Override + public String[] getGroups() { + Set groupNames = new HashSet(); + for (World world : Bukkit.getServer().getWorlds()) { + OverloadedWorldHolder owh = groupManager.getWorldsHolder().getWorldData(world.getName()); + if (owh == null) { + continue; + } + Collection groups = owh.getGroupList(); + if (groups == null) { + continue; + } + for (Group group : groups) { + groupNames.add(group.getName()); + } + } + return groupNames.toArray(new String[0]); + } + + @Override + public boolean hasSuperPermsCompat() { + return true; + } + + @Override + public boolean hasGroupSupport() { + return true; + } +} diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java b/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java index bce4753..d3d977c 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java @@ -1,242 +1,224 @@ -/* This file is part of Vault. - Vault is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - Vault is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with Vault. If not, see . -*/ -package net.milkbowl.vault.permission.plugins; - -import java.util.ArrayList; - -import net.milkbowl.vault.permission.Permission; - -import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.server.PluginDisableEvent; -import org.bukkit.event.server.PluginEnableEvent; -import org.bukkit.plugin.Plugin; - -import com.overmc.overpermissions.api.GroupManager; -import com.overmc.overpermissions.api.PermissionGroup; -import com.overmc.overpermissions.api.PermissionUser; -import com.overmc.overpermissions.api.UserManager; -import com.overmc.overpermissions.internal.OverPermissions; - -public class Permission_OverPermissions extends Permission { - private OverPermissions overPerms; - private UserManager userManager; - private GroupManager groupManager; - - public Permission_OverPermissions(Plugin plugin) { - super.plugin = plugin; - Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); - - if (overPerms == null) { - Plugin perms = plugin.getServer().getPluginManager().getPlugin("OverPermissions"); - if ((perms != null) && (perms.isEnabled())) { - overPerms = ((OverPermissions) perms); - userManager = overPerms.getUserManager(); - groupManager = overPerms.getGroupManager(); - log.info(String.format("[%s][Permission] %s hooked.", new Object[] {plugin.getDescription().getName(), "OverPermissions"})); - } - } - } - - @Override - public String getName( ) { - return "OverPermissions"; - } - - @Override - public boolean isEnabled( ) { - return (overPerms != null) && (overPerms.isEnabled()); - } - - @Override - public boolean playerHas(String worldName, String playerName, String permission) { - if (!userManager.doesUserExist(playerName)) { - return false; - } - return userManager.getPermissionUser(playerName).getPermission(permission, worldName); - } - - @Override - public boolean playerAdd(String worldName, String playerName, String permission) { - if (!userManager.canUserExist(playerName)) { - return false; - } - return userManager.getPermissionUser(playerName).addPermissionNode(permission, worldName); - } - - @Override - public boolean playerRemove(String worldName, String playerName, String permission) { - if (!userManager.canUserExist(playerName)) { - return false; - } - return userManager.getPermissionUser(playerName).removePermissionNode(permission, worldName); - } - - @Override - public boolean groupHas(String worldName, String groupName, String permission) { - if (!groupManager.doesGroupExist(groupName)) { - return false; - } - return groupManager.getGroup(groupName).getPermission(permission, worldName); - } - - @Override - public boolean groupAdd(String worldName, String groupName, String permission) { - if (!groupManager.doesGroupExist(groupName)) { - return false; - } - if (worldName == null) { - return groupManager.getGroup(groupName).addGlobalPermissionNode(permission); - } else { - return groupManager.getGroup(groupName).addPermissionNode(permission, worldName); - } - } - - @Override - public boolean groupRemove(String worldName, String groupName, String permission) { - if (!groupManager.doesGroupExist(groupName)) { - return false; - } - if (worldName == null) { - return groupManager.getGroup(groupName).removeGlobalPermissionNode(permission); - } else { - return groupManager.getGroup(groupName).removePermissionNode(permission, worldName); - } - } - - @Override - public boolean playerInGroup(String worldName, String playerName, String groupName) { - if (!groupManager.doesGroupExist(groupName)) { - return false; - } - if (!userManager.doesUserExist(playerName)) { - return false; - } - return userManager.getPermissionUser(playerName).getAllParents().contains(groupManager.getGroup(groupName)); - } - - @Override - public boolean playerAddGroup(String worldName, String playerName, String groupName) { - if (!groupManager.doesGroupExist(groupName)) { - return false; - } - if (!userManager.canUserExist(playerName)) { - return false; - } - return userManager.getPermissionUser(playerName).addParent(groupManager.getGroup(groupName)); - } - - @Override - public boolean playerRemoveGroup(String worldName, String playerName, String groupName) { - if (!groupManager.doesGroupExist(groupName)) { - return false; - } - if (!userManager.canUserExist(playerName)) { - return false; - } - return userManager.getPermissionUser(playerName).removeParent(groupManager.getGroup(groupName)); - } - - @Override - public String[] getPlayerGroups(String worldName, String playerName) { - ArrayList ret = new ArrayList(); - if (!userManager.doesUserExist(playerName)) { - return new String[0]; - } - PermissionUser user = userManager.getPermissionUser(playerName); - for (PermissionGroup parent : user.getAllParents()) { - ret.add(parent.getName()); - } - return ret.toArray(new String[ret.size()]); - } - - @Override - public String getPrimaryGroup(String worldName, String playerName) { - String[] playerGroups = getPlayerGroups(worldName, playerName); - if (playerGroups.length == 0) { - return null; - } - return playerGroups[0]; - } - - @Override - public boolean playerAddTransient(String world, String playerName, String permission) { - if (!userManager.doesUserExist(playerName)) { // Can't add transient permissions to an offline player. - return false; - } - PermissionUser user = userManager.getPermissionUser(playerName); - return (world == null) ? user.addGlobalTransientPermissionNode(permission) : user.addTransientPermissionNode(permission, world); - } - - @Override - public boolean playerRemoveTransient(String world, String playerName, String permission) { - if (!userManager.doesUserExist(playerName)) { - return false; - } - PermissionUser user = userManager.getPermissionUser(playerName); - return (world == null) ? user.removeGlobalTransientPermissionNode(permission) : user.removeTransientPermissionNode(permission, world); - } - - @Override - public String[] getGroups( ) { - ArrayList groupNames = new ArrayList(); - for (PermissionGroup s : groupManager.getGroups()) { - groupNames.add(s.getName()); - } - return groupNames.toArray(new String[groupNames.size()]); - } - - @Override - public boolean hasSuperPermsCompat( ) { - return true; - } - - @Override - public boolean hasGroupSupport( ) { - return true; - } - - public class PermissionServerListener - implements Listener { - Permission_OverPermissions permission = null; - - public PermissionServerListener(Permission_OverPermissions permission) { - this.permission = permission; - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPluginEnable(PluginEnableEvent event) { - if (permission.overPerms == null) { - Plugin perms = Permission_OverPermissions.this.plugin.getServer().getPluginManager().getPlugin("OverPermissions"); - if (perms != null) { - permission.overPerms = ((OverPermissions) perms); - Permission_OverPermissions.log.info(String - .format("[%s][Permission] %s hooked.", new Object[] {Permission_OverPermissions.this.plugin.getDescription().getName(), "OverPermissions"})); - } - } - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPluginDisable(PluginDisableEvent event) - { - if ((permission.overPerms != null) && - (event.getPlugin().getDescription().getName().equals("OverPermissions"))) { - permission.overPerms = null; - Permission_OverPermissions.log.info(String - .format("[%s][Permission] %s un-hooked.", new Object[] {Permission_OverPermissions.this.plugin.getDescription().getName(), "OverPermissions"})); - } - } - } -} +/* This file is part of Vault. + Vault is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + Vault is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public License + along with Vault. If not, see . +*/ +package net.milkbowl.vault.permission.plugins; + +import java.util.ArrayList; + +import net.milkbowl.vault.permission.Permission; + +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.plugin.Plugin; + +import com.overmc.overpermissions.api.GroupManager; +import com.overmc.overpermissions.api.PermissionGroup; +import com.overmc.overpermissions.api.PermissionUser; +import com.overmc.overpermissions.api.UserManager; +import com.overmc.overpermissions.internal.OverPermissions; + +public class Permission_OverPermissions extends Permission { + private OverPermissions overPerms; + private UserManager userManager; + private GroupManager groupManager; + + public Permission_OverPermissions(Plugin plugin) { + super.plugin = plugin; + Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); + + if (overPerms == null) { + Plugin perms = plugin.getServer().getPluginManager().getPlugin("OverPermissions"); + if ((perms != null) && (perms.isEnabled())) { + overPerms = ((OverPermissions) perms); + userManager = overPerms.getUserManager(); + groupManager = overPerms.getGroupManager(); + log.info(String.format("[%s][Permission] %s hooked.", new Object[] {plugin.getDescription().getName(), "OverPermissions"})); + } + } + } + + @Override + public String getName( ) { + return "OverPermissions"; + } + + @Override + public boolean isEnabled( ) { + return (overPerms != null) && (overPerms.isEnabled()); + } + + @Override + public boolean playerHas(String worldName, String playerName, String permission) { + if (!userManager.doesUserExist(playerName)) { + return false; + } + return userManager.getPermissionUser(playerName).getPermission(permission, worldName); + } + + @Override + public boolean playerAdd(String worldName, String playerName, String permission) { + if (!userManager.canUserExist(playerName)) { + return false; + } + return userManager.getPermissionUser(playerName).addPermissionNode(permission, worldName); + } + + @Override + public boolean playerRemove(String worldName, String playerName, String permission) { + if (!userManager.canUserExist(playerName)) { + return false; + } + return userManager.getPermissionUser(playerName).removePermissionNode(permission, worldName); + } + + @Override + public boolean groupHas(String worldName, String groupName, String permission) { + if (!groupManager.doesGroupExist(groupName)) { + return false; + } + return groupManager.getGroup(groupName).getPermission(permission, worldName); + } + + @Override + public boolean groupAdd(String worldName, String groupName, String permission) { + if (!groupManager.doesGroupExist(groupName)) { + return false; + } + if (worldName == null) { + return groupManager.getGroup(groupName).addGlobalPermissionNode(permission); + } else { + return groupManager.getGroup(groupName).addPermissionNode(permission, worldName); + } + } + + @Override + public boolean groupRemove(String worldName, String groupName, String permission) { + if (!groupManager.doesGroupExist(groupName)) { + return false; + } + if (worldName == null) { + return groupManager.getGroup(groupName).removeGlobalPermissionNode(permission); + } else { + return groupManager.getGroup(groupName).removePermissionNode(permission, worldName); + } + } + + @Override + public boolean playerInGroup(String worldName, String playerName, String groupName) { + if (!groupManager.doesGroupExist(groupName)) { + return false; + } + if (!userManager.doesUserExist(playerName)) { + return false; + } + return userManager.getPermissionUser(playerName).getAllParents().contains(groupManager.getGroup(groupName)); + } + + @Override + public boolean playerAddGroup(String worldName, String playerName, String groupName) { + if (!groupManager.doesGroupExist(groupName)) { + return false; + } + if (!userManager.canUserExist(playerName)) { + return false; + } + return userManager.getPermissionUser(playerName).addParent(groupManager.getGroup(groupName)); + } + + @Override + public boolean playerRemoveGroup(String worldName, String playerName, String groupName) { + if (!groupManager.doesGroupExist(groupName)) { + return false; + } + if (!userManager.canUserExist(playerName)) { + return false; + } + return userManager.getPermissionUser(playerName).removeParent(groupManager.getGroup(groupName)); + } + + @Override + public String[] getPlayerGroups(String worldName, String playerName) { + ArrayList ret = new ArrayList(); + if (!userManager.doesUserExist(playerName)) { + return new String[0]; + } + PermissionUser user = userManager.getPermissionUser(playerName); + for (PermissionGroup parent : user.getAllParents()) { + ret.add(parent.getName()); + } + return ret.toArray(new String[ret.size()]); + } + + @Override + public String getPrimaryGroup(String worldName, String playerName) { + String[] playerGroups = getPlayerGroups(worldName, playerName); + if (playerGroups.length == 0) { + return null; + } + return playerGroups[0]; + } + + @Override + public String[] getGroups( ) { + ArrayList groupNames = new ArrayList(); + for (PermissionGroup s : groupManager.getGroups()) { + groupNames.add(s.getName()); + } + return groupNames.toArray(new String[groupNames.size()]); + } + + @Override + public boolean hasSuperPermsCompat( ) { + return true; + } + + @Override + public boolean hasGroupSupport( ) { + return true; + } + + public class PermissionServerListener + implements Listener { + Permission_OverPermissions permission = null; + + public PermissionServerListener(Permission_OverPermissions permission) { + this.permission = permission; + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginEnable(PluginEnableEvent event) { + if (permission.overPerms == null) { + Plugin perms = Permission_OverPermissions.this.plugin.getServer().getPluginManager().getPlugin("OverPermissions"); + if (perms != null) { + permission.overPerms = ((OverPermissions) perms); + Permission_OverPermissions.log.info(String + .format("[%s][Permission] %s hooked.", new Object[] {Permission_OverPermissions.this.plugin.getDescription().getName(), "OverPermissions"})); + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) + { + if ((permission.overPerms != null) && + (event.getPlugin().getDescription().getName().equals("OverPermissions"))) { + permission.overPerms = null; + Permission_OverPermissions.log.info(String + .format("[%s][Permission] %s un-hooked.", new Object[] {Permission_OverPermissions.this.plugin.getDescription().getName(), "OverPermissions"})); + } + } + } +} diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java index c7f76da..95fb977 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions3.java @@ -224,12 +224,6 @@ public class Permission_Permissions3 extends Permission { return this.perms.has(worldName, playerName, permission); } - - @Override - public boolean playerAddTransient(String player, String permission) { - return playerAddTransient(null, player, permission); - } - @Override public boolean playerAddTransient(Player player, String permission) { return playerAddTransient(null, player.getName(), permission); @@ -240,8 +234,7 @@ public class Permission_Permissions3 extends Permission { return playerAddTransient(worldName, player.getName(), permission); } - @Override - public boolean playerAddTransient(String worldName, String player, String permission) { + private boolean playerAddTransient(String worldName, String player, String permission) { if (worldName == null) { worldName = "*"; } @@ -253,10 +246,6 @@ public class Permission_Permissions3 extends Permission { } } - @Override - public boolean playerRemoveTransient(String player, String permission) { - return playerRemoveTransient(null, player, permission); - } @Override public boolean playerRemoveTransient(Player player, String permission) { @@ -268,8 +257,7 @@ public class Permission_Permissions3 extends Permission { return playerRemoveTransient(worldName, player.getName(), permission); } - @Override - public boolean playerRemoveTransient(String worldName, String player, String permission) { + private boolean playerRemoveTransient(String worldName, String player, String permission) { if (worldName == null) { worldName = "*"; } diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java index ea0ae93..7812848 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_PermissionsEx.java @@ -303,16 +303,6 @@ public class Permission_PermissionsEx extends Permission { } } - @Override - public boolean playerAddTransient(String worldName, String player, String permission) { - PermissionUser pPlayer = getUser(player); - if (pPlayer != null) { - pPlayer.addTimedPermission(permission, worldName, 0); - return true; - } else { - return false; - } - } @Override public boolean playerAddTransient(String worldName, Player player, String permission) { @@ -325,26 +315,11 @@ public class Permission_PermissionsEx extends Permission { } } - @Override - public boolean playerAddTransient(String player, String permission) { - return playerAddTransient(null, player, permission); - } - @Override public boolean playerAddTransient(Player player, String permission) { return playerAddTransient(null, player, permission); } - @Override - public boolean playerRemoveTransient(String worldName, String player, String permission) { - PermissionUser pPlayer = getUser(player); - if (pPlayer != null) { - pPlayer.removeTimedPermission(permission, worldName); - return true; - } else { - return false; - } - } @Override public boolean playerRemoveTransient(Player player, String permission) { @@ -362,11 +337,6 @@ public class Permission_PermissionsEx extends Permission { } } - @Override - public boolean playerRemoveTransient(String player, String permission) { - return playerRemoveTransient(null, player, permission); - } - @Override public String[] getGroups() { List groups = PermissionsEx.getPermissionManager().getGroupList();