Scripting: Difference between revisions

From Citizens Wiki

(Created page with "== Scripting Support in Citizens2 == Citizens2 includes support for various scripting languages including Lua, Javascript and Python. Javascript support is built into Java; a...")
 
No edit summary
Line 14: Line 14:
When the script file is loaded by Citizens, it will call the method 'addGoals(Goals, NPC)'. Goals can be added via calling goals.addGoal(priority, goal), where goal implements the interface specified here -http://jd.citizensnpcs.net/net/citizensnpcs/api/ai/Goal.html.
When the script file is loaded by Citizens, it will call the method 'addGoals(Goals, NPC)'. Goals can be added via calling goals.addGoal(priority, goal), where goal implements the interface specified here -http://jd.citizensnpcs.net/net/citizensnpcs/api/ai/Goal.html.


{{codebox|height=300px|Example done in Javascript|<syntaxhighlight lang="javascript">
{{codebox|height=300px|Example done in Javascript|<syntaxhighlight line='true' lang="javascript">
importPackage(Packages.net.citizensnpcs.api.ai);
importPackage(Packages.net.citizensnpcs.api.ai);
importPackage(Packages.org.bukkit.entity);
importPackage(Packages.org.bukkit.entity);

Revision as of 10:41, 6 August 2012

Scripting Support in Citizens2

Citizens2 includes support for various scripting languages including Lua, Javascript and Python.

Javascript support is built into Java; additional languages can be added in through installing things such as JRuby (http://jruby.org/), Jython (http://www.jython.org/), Kahlua (http://www.ohloh.net/p/kahlua) and more. These use the Java Scripting API to give common scripting support to Citizens.

The scripting API contains a few built in objects in the global namespace which aid in some tasks. Currently, the 'events' object allows registering event listeners for Bukkit events and a reference to the Citizens plugin object is available under 'plugin'.

Let's see an example of how to use scripts. Citizens builds in by default the 'Behaviour' trait - this lets you specify AI tasks via scripts.

Scripts for behaviours should be placed in the plugins/Citizens/scripts/behaviours folder. Scripts are differentiated by their extension -- make sure it is correct!

Behaviours can be added to the NPC via the /npc behaviour [behaviours] command, where behaviours is a list of files to use.

When the script file is loaded by Citizens, it will call the method 'addGoals(Goals, NPC)'. Goals can be added via calling goals.addGoal(priority, goal), where goal implements the interface specified here -http://jd.citizensnpcs.net/net/citizensnpcs/api/ai/Goal.html.


Code: Example done in Javascript