DefinitlyEvil
本帖最后由 DefinitlyEvil 于 2015-5-17 23:19 编辑

不会Java? Java太复杂? 现在你可以用JS来写插件了!
JS插件需要符合DAPIS(小龙JS API)格式.
服务端:
小龙服务端
(支持Bukkit插件和JS插件, MC:PC和MC:PE)

本页可能不是最新版:
>> 最新版(英文) <<

DAPIS插件格式:
每个脚本必须有一个 getUID() 无参数函数返回插件的唯一名称. 比如:
function getUID(){
    return "ExampleScript";
}
还有更多示例脚本可以在这里找到:
https://github.com/DragonetMC/ExampleScripts
下面开始教程:
1. 在JS中导入小龙API
目前提供ServerAPI(管理服务器), PlayerAPI(管理玩家), WorldAPI(管理各个世界), ScriptAPI(管理JS脚本), ConfigAPI(管理配置文件).
导入一个API很简单,比如导入ServerAPI就在开头写: var myServerAPI = new ServerAPI();
2. 使用事件钩子
注意: 一个钩子就是一个普通函数(function xxx(){}).
钩子中传入的所有玩家参数均为Bukkit玩家类, 你可以像调用Bukkit一样调用玩家参数.
比如你可以写:

  1. var myServerApi = new ServerAPI();
  2. function onConnect(player){
  3.     myServerApi.clientMessage("啊, 一个叫 [" + player.getName() +
  4. "] 的玩家进入了游戏. ");
  5. }
复制代码
钩子列表(参数中#开头为数字, @开头为字符串, %开头为Java类, 各参数可以自己定义变量名称在函数中使用):
Tick() - 每个Tick都会调用一次.
useItem(#目标方块X坐标, #Y, #Z, #方块的面(总共6个,取值0-5), @方块名称, %玩家) - 当一个人使用物品时候
onConnect(%玩家) - 当一个人进入服务器
onQuit(%玩家) - 当一个人离开服务器
onKick(%玩家, @原因) - 当一个人被踢出服务器
onCommand(CommandSender sender, String cmdLabel, String alias, String[] args) - 当一个人执行了一个由整个脚本在服务器注册命令的时候执行.
onLoad(Script currentScript), onEnable(), onDisable() - 和Bukkit插件里的三个函数一样. 但是唯一的不同是onLoad()会传入一个参数, 是一个Script类, 也就是当前脚本. 你也许需要将currentScript保存起来留作注册命令等时候使用. Script继承了Bukkit的Plugin类, 所以你可以直接用这个变量调用任何Bukkit函数.
3. 各API内含方法
PlayerAPI

WorldAPIServerAPIConfigAPIScriptAPI
ScriptAPI可以让你在JS之间互相调用, 这里就用到了每个脚本的getUID()的功能了.
但是由于比较复杂,所以你可以 在这里 看ScriptAPI具体使用方法.


Alaun
我为毛运行部了JAVA7....

Alaun
为毛我运行部了JAVA7....

DefinitlyEvil
Alaun 发表于 2015-5-17 15:04
为毛我运行部了JAVA7....

Dragonet需要Java 8.

iSteven
请问GlowStone有生怪算法吗

DefinitlyEvil
iSteven 发表于 2015-5-17 22:48
请问GlowStone有生怪算法吗

目前还不支持怪物AI. GlowStone的主开发人员现在很忙没时间开发, 而我们又只涉及PC、PE平台对接所以我们也不会去弄这块儿.

simon3000
学校教网页的老师特别讨厌PHP,非要JS

这个有点吊啊,PE连PC?

第一页 上一页 下一页 最后一页