46 lines
2 KiB
Markdown
46 lines
2 KiB
Markdown
## 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][1]
|
|
|
|
[1]: http://dev.bukkit.org/bukkit-plugins/scriptcraft/?page=2#c48
|
|
|
|
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...
|
|
```javascript
|
|
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:
|
|
|
|
```javascript
|
|
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:
|
|
|
|
```javascript
|
|
var otherPlugin = server.pluginManager.getPlugin('PLUGIN_NAME_GOES_HERE');
|
|
```
|
|
|
|
whereas in CanaryMod it's:
|
|
|
|
```javascript
|
|
var Canary = Packages.net.canarymod.Canary;
|
|
var otherPlugin = Canary.pluginManager().getPlugin('PLUGIN_NAME_GOES_HERE');
|
|
```
|