CustomStuff2
本帖最后由 1582952890 于 2017-9-16 18:58 编辑

0. 前言
插件程序员想起了那些年被插件支配的恐怖。
创建一个Java工程,多痛苦。
添加依赖库,多痛苦。
创建一个继承自JavaPlugin的类,多痛苦。
写plugin.yml,多痛苦。
导出一个jar,多痛苦。
如果中间还要debug,更痛苦了。
打开IDE,多痛苦。

于是,脚本语言创造了懒惰。
而一个号称最懒惰的程序员,创造这个插件。

本插件开源(GPLv3):https://github.com/aegistudio/Scriptful

1. 程序员怎么使用?
1.1. 一个最简单的插件

1.2 需要监听器?

1.3 接受指令

1.4 多个文件?

1.5 支持其他脚本语言

1.6 Unload Hook

1.7 Scheduler


2. 服主怎么使用?
寻找用脚本写的插件,拖进plugin/Scriptful文件夹下面,即可。

3. 权限与指令
/script
: 列出所有script下的指令及用法。(执行script指令均需要script.command权限!)
/script unload <name>: 卸载指定的插件(插件必须已经加载)。
/script reload <name>: 重新加载指定的插件(插件必须已经加载)。
/script load <name>: 加载指定的插件(插件刚被卸载,或刚被拖进Scriptful目录下)。
/script exec <name> <code>: 在某一插件环境下执行语句(debug福利!)。

4. 更新日志
v0.04b (2016.12.11)

v0.03b (2016.8.31)

v0.02b (2016.8.30)

v0.01b (2016.8.29)



更新中!

青木源
本帖最后由 XIAOMM 于 2016-8-31 15:54 编辑

玩什么JAVA来玩C++

尤里の猫_
无比的强大!

duang2333
javascript?

CustomStuff2
XIAOMM 发表于 2016-8-29 20:29
完全告别JAVA的前提,先告别JAVA版的MC。
所以来玩C++的Win10版吧(滑稽)

“告别Java与IDE,用脚本语言写插件”
这句子断句是
“告别Java与IDE写插件,用脚本语言写插件”

新人都是怪物系列

CustomStuff2

不仅可以支持js,还可以支持比如lua等语言。。
我教程还没写到。

117779284
这里应该有更详细的教材。。。
感谢上古做的贡献。希望能更加完善

_DIM_
我去,这是2级所做的?
新人都是怪物系列。

914554688wyt
姆书记又发插件 精华预备

yaojiajie
现在的新人,简直是Him般存在{:10_516:}

upupp
新人都进上古之石了!

HotPe_e
向dalao势力低头

白色的奢华、
还是不太懂。。。

x240295600
火钳刘明

堕星辰
支持原创!
不过冒昧问一句
我想知道和Skript的差别是?

CustomStuff2
堕星辰 发表于 2016-8-29 21:35
支持原创!
不过冒昧问一句
我想知道和Skript的差别是?

http://njol.ch/projects/skript/ Skript is a plugin for Bukkit, a popular Minecraft server mod. It allows server admins to easily modify how Minecraft works without programming anything.

也就是说,skript目标是不用编程,而我只是不用java编程罢了。

冰封死灵
完全看不懂的感觉

堕星辰
CustomStuff2 发表于 2016-8-29 14:31
http://njol.ch/projects/skript/ Skript is a plugin for Bukkit, a popular Minecraft server mod. It  ...

这样啊_(:з」∠)_

云闪
姆书记又来刷精华了_(:_」∠)_

用这个插件写测试插件会方便非常多
期待加入实时编译输出(聊天框)的功能(嗯就像py那样?能计算出结果的就输出){:10_512:}

andylizi
我突然想到有没有可能把js代码转换为原生bukkit插件

CustomStuff2
andylizi 发表于 2016-8-30 10:56
我突然想到有没有可能把js代码转换为原生bukkit插件

导出bytecode弄进jar里么233333

andylizi
CustomStuff2 发表于 2016-8-30 12:51
导出bytecode弄进jar里么233333

。。我的意思是把js写法用程序转换为插件一般写法

zyizhuo
本帖最后由 zyizhuo 于 2016-9-3 13:05 编辑

这是用js编的是吗

Lam_h
这个插件方便的地方就是可以将PvPin制作的插件丢进去运行...吧?(似乎用法与Pvpin不一样的说....)

爱琴炫彩
本帖最后由 爱琴炫彩 于 2016-8-30 14:32 编辑

看起来很不错! 那么效率如何呢?

比如监听了比如ItemMove的事件,那么最终的调用过程会是怎样的?
话说用脚本直接写的话,会少一样东西,那就是..代码提示...,不看代码提示直接写代码的大佬,估计用java写会更快...


没代码提示我觉得还是比较难受的...

980378314
这个很棒简单省事

翼LOVE·小爱
直接放入插件源代码可以执行吗?(窝真的不会编程_(:з」∠)_)

CustomStuff2
爱琴炫彩 发表于 2016-8-30 14:26
看起来很不错! 那么效率如何呢?

比如监听了比如ItemMove的事件,那么最终的调用过程会是怎样的?

效率不用问了,基本上你见到的脚本引擎都有JIT功能,java跑多快,你脚本就该跑多快。

过程和一般插件一样吧,根据注册的优先级被调用。不会因为用js写而有功能上的损失。

代码提示指哪种?语法检查的话,应该找有语法检查功能的文本编辑器。
要用什么类这个应该看javadoc。

CustomStuff2
更新

v0.02b (2016.8.30)
支持直接将引擎jar文件放进插件文件夹
修复一个指令相关的bug

andylizi
诶等等我发现一件事诶
监听器的定义里怎么没有ignoreCancelled

CustomStuff2
andylizi 发表于 2016-8-30 18:09
诶等等我发现一件事诶
监听器的定义里怎么没有ignoreCancelled

手残,下个版本加上

ak1115284886
简直一万个好评!
作为超级懒的程序员感觉重新获得生活的希望

QQ1357288463
5级的有新人勋章的大神...
我想静静

小次君
感觉很那个啊……还有点看不懂……{:10_493:}

RE_OVO
支持姆书记。
使用前置呢?比如Vault PL....

Green_stone
话说这本身是插件还是什么?

司马缸砸光
开创插件开发新时代

xiari_
依旧看不懂233 我不会呀 dalao

zyizhuo
XIAOMM 发表于 2016-8-29 20:29
玩什么JAVA来玩C++

这个我支持。。问题是c++咋写mc插件啊?

CustomStuff2
本帖最后由 CustomStuff2 于 2016-9-3 14:46 编辑
jebme 发表于 2016-9-3 06:50
支持姆书记。
使用前置呢?比如Vault PL....

self.getServer().getServicesManager().getRegistration(XXXXX.class)

a66344512
这不错可以拿来偷懒,方便很多.赞

夜喵星球
没看懂啊~但是好像很厉害的样子{:10_525:}

Iratu
1344641274 发表于 2016-8-29 21:07
新人都进上古之石了!

小号没人看出来系列

qq245271830
要是不会java是不是就不能用了啊

CustomStuff
qq245271830 发表于 2016-9-10 12:12
要是不会java是不是就不能用了啊

如果是程序员会js且会看javadoc即可,如果是服主两样都不用会

qq245271830
CustomStuff 发表于 2016-9-10 19:01
如果是程序员会js且会看javadoc即可,如果是服主两样都不用会

好吧  看来是无缘了   我想请问一下  如果想学写插件应该怎么学习java   有基础

远古工作室
C++不好么?

TFPS·妖魅
我还是不会

qt819762430
666  60个绿宝石亮了  大神啊

下一页 最后一页