diff --git a/lib/rscPermissions.jar b/lib/rscPermissions.jar new file mode 100644 index 0000000..f319546 Binary files /dev/null and b/lib/rscPermissions.jar differ diff --git a/pom.xml b/pom.xml index f2b739a..11b6626 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ http://dev.bukkit.org/server-mods/vault/ Vault is a Permissions & Economy API to allow plugins to more easily hook into these systems without needing to hook each individual system themselves. -Vault currently supports the following: Permissions 3, PEX, GroupManager, bPerms, bPerms2, SimplyPerms, DroxPerms, zPermissions, Starburst, iConomy (4/5/6) BOSEconomy *6/7), EssentialsEcon, 3Co, MultiConomy, MineConomy, EconXP, eWallet, CurrencyCore, XPBank, CraftConomy, AEco, SDFEconomy +Vault currently supports the following: Permissions 3, PEX, GroupManager, bPerms, bPerms2, SimplyPerms, DroxPerms, zPermissions, rscPermissions, Starburst, iConomy (4/5/6) BOSEconomy *6/7), EssentialsEcon, 3Co, MultiConomy, MineConomy, EconXP, eWallet, CurrencyCore, XPBank, CraftConomy, AEco, SDFEconomy UTF-8 @@ -348,6 +348,13 @@ Vault currently supports the following: Permissions 3, PEX, GroupManager, bPerms system ${project.basedir}/lib/TotalPermissions.jar + + ru.simsonic + rscPermissions + 1.0 + system + ${project.basedir}/lib/rscPermissions.jar + diff --git a/src/net/milkbowl/vault/Vault.java b/src/net/milkbowl/vault/Vault.java index c86fc4e..43420db 100644 --- a/src/net/milkbowl/vault/Vault.java +++ b/src/net/milkbowl/vault/Vault.java @@ -36,6 +36,7 @@ import net.milkbowl.vault.chat.plugins.Chat_iChat; import net.milkbowl.vault.chat.plugins.Chat_mChat; import net.milkbowl.vault.chat.plugins.Chat_mChatSuite; import net.milkbowl.vault.chat.plugins.Chat_zPermissions; +import net.milkbowl.vault.chat.plugins.Chat_rscPermissions; import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.plugins.Economy_3co; import net.milkbowl.vault.economy.plugins.Economy_AEco; @@ -76,6 +77,7 @@ import net.milkbowl.vault.permission.plugins.Permission_bPermissions; import net.milkbowl.vault.permission.plugins.Permission_bPermissions2; import net.milkbowl.vault.permission.plugins.Permission_zPermissions; import net.milkbowl.vault.permission.plugins.Permission_TotalPermissions; +import net.milkbowl.vault.permission.plugins.Permission_rscPermissions; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; @@ -195,6 +197,9 @@ public class Vault extends JavaPlugin { // Try to load Privileges hookChat("Privileges", Chat_Privileges.class, ServicePriority.Normal, "net.krinsoft.privileges.Privileges"); + + // Try to load rscPermissions + hookChat("rscPermissions", Chat_rscPermissions.class, ServicePriority.Normal, "ru.simsonic.rscPermissions.MainPluginClass"); } /** @@ -319,6 +324,9 @@ public class Vault extends JavaPlugin { //Try to load TotalPermissions hookPermission("TotalPermissions", Permission_TotalPermissions.class, ServicePriority.Normal, "net.ae97.totalpermissions.TotalPermissions"); + + // Try to load rscPermissions + hookPermission("rscPermissions", Permission_rscPermissions.class, ServicePriority.Normal, "ru.simsonic.rscPermissions.MainPluginClass"); Permission perms = new Permission_SuperPerms(this); sm.register(Permission.class, perms, this, ServicePriority.Lowest); diff --git a/src/net/milkbowl/vault/chat/plugins/Chat_rscPermissions.java b/src/net/milkbowl/vault/chat/plugins/Chat_rscPermissions.java new file mode 100644 index 0000000..75a9d40 --- /dev/null +++ b/src/net/milkbowl/vault/chat/plugins/Chat_rscPermissions.java @@ -0,0 +1,211 @@ +/* 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.chat.plugins; +import java.util.logging.Logger; +import net.milkbowl.vault.chat.Chat; +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 ru.simsonic.rscPermissions.MainPluginClass; + +public class Chat_rscPermissions extends Chat +{ + private static final Logger log = Logger.getLogger("Minecraft"); + private final Plugin vault; + private ru.simsonic.rscPermissions.MainPluginClass rscp; + private ru.simsonic.rscPermissions.rscpAPI API; + public Chat_rscPermissions(Plugin plugin, Permission perm) + { + super(perm); + this.vault = plugin; + Bukkit.getServer().getPluginManager().registerEvents(new ChatServerListener(this), vault); + rscp = (ru.simsonic.rscPermissions.MainPluginClass)vault.getServer().getPluginManager().getPlugin("rscPermissions"); + } + private class ChatServerListener implements Listener + { + private final Chat_rscPermissions bridge; + public ChatServerListener(Chat_rscPermissions bridge) + { + this.bridge = bridge; + } + @EventHandler(priority = EventPriority.MONITOR) + private void onPluginEnable(PluginEnableEvent event) + { + if(bridge.rscp == null) + { + Plugin plugin = event.getPlugin(); + if(!"rscPermissions".equals(plugin.getName())) + return; + bridge.rscp = (MainPluginClass)plugin; + } + if(bridge.API == null) + bridge.API = bridge.rscp.API; + if(bridge.API.isEnabled()) + log.info(String.format("[%s][Chat] %s hooked.", + vault.getDescription().getName(), bridge.API.getName())); + } + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) + { + if(bridge.API != null) + if(event.getPlugin().getDescription().getName().equals(bridge.API.getName())) + { + log.info(String.format("[%s][Chat] %s un-hooked.", + vault.getDescription().getName(), bridge.API.getName())); + bridge.API = null; + } + } + } + @Override + public String getName() + { + return (API != null) ? API.getName() : "rscPermissions"; + } + @Override + public boolean isEnabled() + { + return (API != null) ? API.isEnabled() : false; + } + @Override + public String getPlayerPrefix(String string, String string1) + { + if(API != null) + return API.getPlayerPrefix(string, string1); + return ""; + } + @Override + public String getPlayerSuffix(String string, String string1) + { + if(API != null) + return API.getPlayerSuffix(string, string1); + return ""; + } + @Override + public String getGroupPrefix(String string, String string1) + { + if(API != null) + return API.getGroupPrefix(string, string1); + return ""; + } + @Override + public String getGroupSuffix(String string, String string1) + { + if(API != null) + return API.getGroupSuffix(string, string1); + return ""; + } + @Override + public void setPlayerPrefix(String string, String string1, String string2) + { + if(API != null) + API.setPlayerPrefix(string, string1, string2); + } + @Override + public void setPlayerSuffix(String string, String string1, String string2) + { + if(API != null) + API.setPlayerSuffix(string, string1, string2); + } + @Override + public void setGroupPrefix(String string, String string1, String string2) + { + if(API != null) + API.setGroupPrefix(string, string1, string2); + } + @Override + public void setGroupSuffix(String string, String string1, String string2) + { + if(API != null) + API.setGroupSuffix(string, string1, string2); + } + @Override + public int getPlayerInfoInteger(String string, String string1, String string2, int i) + { + return 0; + } + @Override + public void setPlayerInfoInteger(String string, String string1, String string2, int i) + { + } + @Override + public int getGroupInfoInteger(String string, String string1, String string2, int i) + { + return 0; + } + @Override + public void setGroupInfoInteger(String string, String string1, String string2, int i) + { + } + @Override + public double getPlayerInfoDouble(String string, String string1, String string2, double d) + { + return 0.0; + } + @Override + public void setPlayerInfoDouble(String string, String string1, String string2, double d) + { + } + @Override + public double getGroupInfoDouble(String string, String string1, String string2, double d) + { + return 0.0; + } + @Override + public void setGroupInfoDouble(String string, String string1, String string2, double d) + { + } + @Override + public boolean getPlayerInfoBoolean(String string, String string1, String string2, boolean bln) + { + return false; + } + @Override + public void setPlayerInfoBoolean(String string, String string1, String string2, boolean bln) + { + } + @Override + public boolean getGroupInfoBoolean(String string, String string1, String string2, boolean bln) + { + return false; + } + @Override + public void setGroupInfoBoolean(String string, String string1, String string2, boolean bln) + { + } + @Override + public String getPlayerInfoString(String string, String string1, String string2, String string3) + { + return "..."; + } + @Override + public void setPlayerInfoString(String string, String string1, String string2, String string3) + { + } + @Override + public String getGroupInfoString(String string, String string1, String string2, String string3) + { + return "..."; + } + @Override + public void setGroupInfoString(String string, String string1, String string2, String string3) + { + } +} diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_rscPermissions.java b/src/net/milkbowl/vault/permission/plugins/Permission_rscPermissions.java new file mode 100644 index 0000000..d8b3ba4 --- /dev/null +++ b/src/net/milkbowl/vault/permission/plugins/Permission_rscPermissions.java @@ -0,0 +1,178 @@ +/* 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 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 ru.simsonic.rscPermissions.MainPluginClass; + +public class Permission_rscPermissions extends Permission +{ + private final Plugin vault; + private ru.simsonic.rscPermissions.MainPluginClass rscp = null; + private ru.simsonic.rscPermissions.rscpAPI API = null; + public Permission_rscPermissions(Plugin plugin) + { + super(); + this.vault = plugin; + Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), vault); + rscp = (MainPluginClass)vault.getServer().getPluginManager().getPlugin("rscPermissions"); + } + private class PermissionServerListener implements Listener + { + private final Permission_rscPermissions bridge; + public PermissionServerListener(Permission_rscPermissions bridge) + { + this.bridge = bridge; + } + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginEnable(PluginEnableEvent event) + { + if(bridge.rscp == null) + { + Plugin plugin = event.getPlugin(); + if(!"rscPermissions".equals(plugin.getName())) + return; + bridge.rscp = (MainPluginClass)plugin; + } + if(bridge.API == null) + bridge.API = bridge.rscp.API; + if(bridge.API.isEnabled()) + log.info(String.format("[%s][Permission] %s hooked.", + vault.getDescription().getName(), bridge.API.getName())); + } + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) + { + if(bridge.API != null) + if(event.getPlugin().getDescription().getName().equals(bridge.API.getName())) + { + log.info(String.format("[%s][Permission] %s un-hooked.", + vault.getDescription().getName(), bridge.API.getName())); + bridge.API = null; + } + } + } + @Override + public String getName() + { + return (API != null) ? API.getName() : "rscPermissions"; + } + @Override + public boolean isEnabled() + { + return (API != null) ? API.isEnabled() : false; + } + @Override + public boolean hasSuperPermsCompat() + { + return (API != null) ? API.hasSuperPermsCompat() : true; + } + @Override + public boolean hasGroupSupport() + { + return (API != null) ? API.hasGroupSupport() : true; + } + @Override + public boolean playerHas(String string, String string1, String string2) + { + if(API != null) + return API.playerHas(string, string1, string2); + return false; + } + @Override + public boolean playerAdd(String string, String string1, String string2) + { + if(API != null) + return API.playerAdd(string, string1, string2); + return false; + } + @Override + public boolean playerRemove(String string, String string1, String string2) + { + if(API != null) + return API.playerRemove(string, string1, string2); + return false; + } + @Override + public boolean groupHas(String string, String string1, String string2) + { + if(API != null) + return API.groupHas(string, string1, string2); + return false; + } + @Override + public boolean groupAdd(String string, String string1, String string2) + { + if(API != null) + return API.groupAdd(string, string1, string2); + return false; + } + @Override + public boolean groupRemove(String string, String string1, String string2) + { + if(API != null) + return API.groupRemove(string, string1, string2); + return false; + } + @Override + public boolean playerInGroup(String string, String string1, String string2) + { + if(API != null) + return API.playerInGroup(string, string1, string2); + return false; + } + @Override + public boolean playerAddGroup(String string, String string1, String string2) + { + if(API != null) + return API.playerAddGroup(string, string1, string2); + return false; + } + @Override + public boolean playerRemoveGroup(String string, String string1, String string2) + { + if(API != null) + return API.playerRemoveGroup(string, string1, string2); + return false; + } + @Override + public String[] getPlayerGroups(String string, String string1) + { + if(API != null) + return API.getPlayerGroups(string, string1); + return new String[] { "Default" }; + } + @Override + public String getPrimaryGroup(String string, String string1) + { + if(API != null) + return API.getPrimaryGroup(string, string1); + return "Default"; + } + @Override + public String[] getGroups() + { + if(API != null) + return API.getGroups(); + return new String[] { "Default" }; + } +}