本帖最后由 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)
更新中!
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)
- 指定事件时,支持用简名(PlayerChatEvent)代替全名(org.bukkit.event.player.PlayerChatEvent)
- 修复onLoad未创建插件目录发生异常的bug
- 修复监听器能听到父类事件的bug。
v0.03b (2016.8.31)
- 修复ignoreCancelled参数。
- 支持热加载/热卸载/热重载。
- 支持交互式执行。
v0.02b (2016.8.30)
- 支持直接将引擎jar文件放进插件文件夹
- 修复一个指令相关的bug
v0.01b (2016.8.29)
- 支持脚本文件中的插件。
- 支持压缩包的插件。
- 支持卸载钩。
- 支持注册监听器。
- 支持注册命令的CommandExecutor与TabCompleter
更新中!
本帖最后由 XIAOMM 于 2016-8-31 15:54 编辑
玩什么JAVA来玩C++
玩什么JAVA来玩C++
无比的强大!
javascript?
XIAOMM 发表于 2016-8-29 20:29
完全告别JAVA的前提,先告别JAVA版的MC。
所以来玩C++的Win10版吧(滑稽)
“告别Java与IDE,用脚本语言写插件”
这句子断句是
“告别Java与IDE写插件,用脚本语言写插件”
新人都是怪物系列
这里应该有更详细的教材。。。
感谢上古做的贡献。希望能更加完善
感谢上古做的贡献。希望能更加完善
我去,这是2级所做的?
新人都是怪物系列。
新人都是怪物系列。
姆书记又发插件 精华预备
现在的新人,简直是Him般存在{:10_516:}
新人都进上古之石了!
向dalao势力低头
还是不太懂。。。
火钳刘明
支持原创!
不过冒昧问一句
我想知道和Skript的差别是?
不过冒昧问一句
我想知道和Skript的差别是?
堕星辰 发表于 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:}
用这个插件写测试插件会方便非常多
期待加入实时编译输出(聊天框)的功能(嗯就像py那样?能计算出结果的就输出){:10_512:}
我突然想到有没有可能把js代码转换为原生bukkit插件
andylizi 发表于 2016-8-30 10:56
我突然想到有没有可能把js代码转换为原生bukkit插件
导出bytecode弄进jar里么233333
CustomStuff2 发表于 2016-8-30 12:51
导出bytecode弄进jar里么233333
。。我的意思是把js写法用程序转换为插件一般写法
本帖最后由 zyizhuo 于 2016-9-3 13:05 编辑
这是用js编的是吗
这是用js编的是吗
这个插件方便的地方就是可以将PvPin制作的插件丢进去运行...吧?(似乎用法与Pvpin不一样的说....)
本帖最后由 爱琴炫彩 于 2016-8-30 14:32 编辑
看起来很不错! 那么效率如何呢?
比如监听了比如ItemMove的事件,那么最终的调用过程会是怎样的?
话说用脚本直接写的话,会少一样东西,那就是..代码提示...,不看代码提示直接写代码的大佬,估计用java写会更快...
没代码提示我觉得还是比较难受的...
看起来很不错! 那么效率如何呢?
比如监听了比如ItemMove的事件,那么最终的调用过程会是怎样的?
话说用脚本直接写的话,会少一样东西,那就是..代码提示...,不看代码提示直接写代码的大佬,估计用java写会更快...
没代码提示我觉得还是比较难受的...
这个很棒简单省事
直接放入插件源代码可以执行吗?(窝真的不会编程_(:з」∠)_)
爱琴炫彩 发表于 2016-8-30 14:26
看起来很不错! 那么效率如何呢?
比如监听了比如ItemMove的事件,那么最终的调用过程会是怎样的?
效率不用问了,基本上你见到的脚本引擎都有JIT功能,java跑多快,你脚本就该跑多快。
过程和一般插件一样吧,根据注册的优先级被调用。不会因为用js写而有功能上的损失。
代码提示指哪种?语法检查的话,应该找有语法检查功能的文本编辑器。
要用什么类这个应该看javadoc。
更新
v0.02b (2016.8.30)
支持直接将引擎jar文件放进插件文件夹
修复一个指令相关的bug
v0.02b (2016.8.30)
支持直接将引擎jar文件放进插件文件夹
修复一个指令相关的bug
诶等等我发现一件事诶
监听器的定义里怎么没有ignoreCancelled
监听器的定义里怎么没有ignoreCancelled
andylizi 发表于 2016-8-30 18:09
诶等等我发现一件事诶
监听器的定义里怎么没有ignoreCancelled
手残,下个版本加上
简直一万个好评!
作为超级懒的程序员感觉重新获得生活的希望
作为超级懒的程序员感觉重新获得生活的希望
5级的有新人勋章的大神...
我想静静
我想静静
感觉很那个啊……还有点看不懂……{:10_493:}
支持姆书记。
使用前置呢?比如Vault PL....
使用前置呢?比如Vault PL....
话说这本身是插件还是什么?
开创插件开发新时代
依旧看不懂233 我不会呀 dalao
XIAOMM 发表于 2016-8-29 20:29
玩什么JAVA来玩C++
这个我支持。。问题是c++咋写mc插件啊?
本帖最后由 CustomStuff2 于 2016-9-3 14:46 编辑
self.getServer().getServicesManager().getRegistration(XXXXX.class)
jebme 发表于 2016-9-3 06:50
支持姆书记。
使用前置呢?比如Vault PL....
self.getServer().getServicesManager().getRegistration(XXXXX.class)
这不错可以拿来偷懒,方便很多.赞
没看懂啊~但是好像很厉害的样子{:10_525:}
1344641274 发表于 2016-8-29 21:07
新人都进上古之石了!
小号没人看出来系列
要是不会java是不是就不能用了啊
qq245271830 发表于 2016-9-10 12:12
要是不会java是不是就不能用了啊
如果是程序员会js且会看javadoc即可,如果是服主两样都不用会
CustomStuff 发表于 2016-9-10 19:01
如果是程序员会js且会看javadoc即可,如果是服主两样都不用会
好吧 看来是无缘了 我想请问一下 如果想学写插件应该怎么学习java 有基础
C++不好么?
我还是不会
666 60个绿宝石亮了 大神啊