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" };
+ }
+}