2 KiB
Using Other Plugins from ScriptCraft
The following question gets asked a lot so I'm going to try to answer it here:
How to use other bukkit plugins API?
Like PermissionEX API.
I can check permission group by java code:
ru.tehkode.permissions.bukkit.PermissionsEx.getUser(player).inGroup("moderator");
But I can't run this code in JavaScript.
-- Bukkit forum question
The above question refers to using ScriptCraft for CraftBukkit so I'll answer that first:
You can get the permissionsEx (or any other Bukkit plugin) like this...
var pex = server.pluginManager.getPlugin('PermissionsEx');
if (pex.getUser(player).inGroup('moderator') ) {
...
}
Generally if you want to use another plugin's API, then get the plugin object by name and then call its methods. In the above example the pex
variable refers to the aforementioned PermissionsEx
Plugin. Once you have that reference you can call any of the plugin's methods just as you would in Java. The tricky part is getting the reference and that's where server.pluginManager.getPlugin()
comes in.
To get a reference to and work with another plugin's API using ScriptCraft for CanaryMod the same principle applies. Say you've installed ScriptCraft and the dConomy plugin:
var Canary = Packages.net.canarymod.Canary;
var pluginMgr = Canary.pluginManager();
var dConomy = pluginMgr.getPlugin('dConomy');
var dConomyServer = dConomy.modServer;
// from here on in you can access all of the dConomyServer object's calls
// e.g. dConomyServer.newTransaction()
The only difference between CanaryMod and Bukkit is how you get the plugin reference. In Bukkit it's:
var otherPlugin = server.pluginManager.getPlugin('PLUGIN_NAME_GOES_HERE');
whereas in CanaryMod it's:
var Canary = Packages.net.canarymod.Canary;
var otherPlugin = Canary.pluginManager().getPlugin('PLUGIN_NAME_GOES_HERE');