Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 3586|回复: 9

[BDServer插件] [原创][前置API]JS插件运行平台——win版bds下可运行js插件的平台类插件[1.16.1停更]

[复制链接]
Xiaohua001 当前离线
积分
911
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-3-20
查看详细资料
 楼主| 发表于 2020-3-26 04:15:53 | 显示全部楼层 |阅读模式
基岩版插件发布
中文名称: JS插件运行平台
英文名称: BDSJSRunner
来源: 原创
前置插件: #
服务端类型: BDServer 
插件类型:  
支持版本:  
下载地址: https://gitee.com/zhkj-liuxiaohua/BDSJSRunner-Release/releases
原帖地址: https://www.mcbbs.net/thread-997406-1-1.html
最后更新: 2020-07-03

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 Xiaohua001 于 2020-8-12 22:00 编辑

BDSJSRunner


感谢Player提供技术支持。
dll插件开发相关技术内容详见win版bds插件软件资源&开发手册帖
https://www.mcbbs.net/thread-868293-1-5.html

介绍

本插件为提供Win版BDS下JS插件运行平台。
示例样本实现源码参考 https://mzgl.coding.net/p/BDSJSRunner/git
现在,用户可以使用简单的js脚本实现服务器自定义高级功能了!搭配有限功能的指令脚本,即可定制更多有趣的玩法。

软件架构

基于Player提供的win版bds插件开发框架。
使用微软hook库,详见 https://github.com/Microsoft/Detours
谷歌v8开源解析框架,详见 https://chromium.googlesource.com/v8/v8.git (可能需要外网)
JSONCPP库,详见 https://github.com/open-source-parsers/jsoncpp
libcurl库,详见 https://curl.haxx.se/
插件基本运作原理:hook bds事件点位 -> 修改内存属性/转v8虚拟机执行事件处理代码 -> 取结果决定是否拦截/继续执行。

主要功能

解析js插件,通过采用监听器注册机制以完成特定事件的处理。使用js,您可以用js注册关键事件监听,执行指定c++提供的功能。一个简单的js测试用例插件如下:
  1. // 匿名方式设置攻击事件前监听器
  2. setBeforeActListener('onAttack', function (e) {
  3.         var je = JSON.parse(e);
  4.         var str = '[测试]' + ' 玩家 ' + je.playername + ' 即将发动攻击。';
  5.         log(str);
  6.         // 事件内随时可进行mc指令执行
  7.         runcmd('title ' + je.playername + ' actionbar (测试)举起手来!');
  8.         // 事件内随时可保存信息至外部文件
  9.         fileWriteLine('jslog.txt', str);
  10.         // 事件内随时可读取外部信息文件或执行外部脚本
  11.         // var outcmd = fileReadAllText('outjs.js');
  12.         // runScript(outcmd);
  13.         return true;        // 如果返回false,则表示拦截该事件的执行
  14. });
复制代码
该插件的功能是注册一个监听器,拦截玩家的攻击事件,在完成 输出玩家攻击事件发生时的信息至后台服务端并保存至文件、通过后台发送一条mc指令至玩家 的任务处理后继续执行攻击事件。在最新版开发包中,包含了丰富的事件监听,如 后台指令监听、玩家选择GUI表单监听、玩家重生监听等;包含了多样的玩家互动功能,如 重命名玩家、设定玩家能力值、跨服传送等。更多案例及使用方式详见插件运行平台附带的开发手册,或参考在线开发文档 http://game.xiafox.com/jsrdevdoc.htm

使用方式

一、在启动器所在目录新建一个js文件夹:
js所在目录.png

二、将你编写的插件放置于js文件夹内:
js插件.png
三、执行启动器,开服,提示js文件加载成功即可应用你的js插件了。
启动器运行.png



FAQ

1. 什么是启动器?
答:启动器是bds的外挂程序,用于注入dll版插件到bds中。当前版本的bds插件基本依赖于启动器注入运行。

2. 我应该选择哪款启动器运行js插件?
答:本案例中,您可以从win版插件开发教程中获取启动器(https://www.mcbbs.net/thread-868293-1-5.html),或者使用Player提供的命令提示符版启动器(https://github.com/zhkj-liuxiaohua/nanolauncher-CPP/),或者使用Syscall设计的全新开发框架bdX(部分源码示例参考https://github.com/Sysca11/BedrockX,本帖下载地址已提供bdX专供版本的JSRunner),或者使用自行设计的符合注入规范的启动器。

3. 此js插件运行平台能运行于Element-0(下文简称 ez)启动器吗?
答:Element-0启动器为codeHz主持开发的bds下加载mod的一个开源项目。据笔者了解,来自部分ez用户的反馈是存在不兼容情况。ez支持官方脚本,详见 https://minecraft-zh.gamepedia.com/%E5%9F%BA%E5%B2%A9%E7%89%88beta%E8%84%9A%E6%9C%AC%E6%96%87%E6%A1%A3

4. 此js插件运行平台能运行官方wiki上基于addon编写的js吗?
答:不能,此js功能规则为自定义规则。详见帮助文档。

5. 我应该如何保护好我的js文件不被恶意篡改?
答:据笔者了解,使用 closure-compiler 可有效压缩js文件。尚未试过混淆加密,有兴趣的可以自行尝试。

6. 为什么js不能执行system命令啊QvQ?
答:出于安全性考虑,设计如此。

其它

更多建议和意见,欢迎留言,或者前往 https://github.com/zhkj-liuxiaohua/BDSJSRunner-Release/issues 提交反馈。

欢迎前往 WIN版BDS开发群参与交流讨论,QQ群号:565040870

更新日志



停更说明

jsr停更是怎么回事呢?jsr相信大家都很熟悉,但是jsr停更是怎么回事呢,下面就让小编带大家一起了解吧。
jsr停更,其实就是jsr框架无法更改的缺陷,大家可能会很惊讶jsr怎么会停更呢?但事实就是这样,小编也感到非常惊讶。
这就是关于jsr停更的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!
(免责声明:个人的停更并不意味着社区的停更。我们很乐意于看到开发者持续为开源社区做贡献,个人的力量是有限的,但社区的力量是无限的。您仍然可以从 梦之故里 官方获取新版JSRunner,遵循 梦故许可协议 进行使用即可。目前维护者已变更为社区。)

评分

参与人数 1人气 +2 金粒 +30 收起 理由
happyvalley + 2 + 30 感谢您的开发

查看全部评分

初夏喔 当前离线
积分
345
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-22
查看详细资料
发表于 2020-3-26 14:47:20 | 显示全部楼层
前排支持大佬
回复

使用道具 举报

happyvalley 当前离线
积分
1806
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-12-7
查看详细资料
发表于 2020-3-28 02:58:55 | 显示全部楼层
支持,感谢大佬开发
回复

使用道具 举报

北斗七星Chk 当前离线
积分
655
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-5-27
查看详细资料
发表于 2020-3-30 11:21:19 | 显示全部楼层
请问一下您是不是基于原先的JSRunner而改造的?
回复

使用道具 举报

Xiaohua001 当前离线
积分
911
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-3-20
查看详细资料
 楼主| 发表于 2020-3-30 11:33:36 | 显示全部楼层
北斗七星Chk 发表于 2020-3-30 11:21
请问一下您是不是基于原先的JSRunner而改造的?

否,非改造。此JSRunner为Player提供的开发框架与v8技术支持,由本人开发完成,即原创应用。梦之故里发布时依据团队应用修改标签再予以的发布,除签名以外基本功能与官方版本保证一致。我这么说,您能明白吗?
回复

使用道具 举报

北斗七星Chk 当前离线
积分
655
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-5-27
查看详细资料
发表于 2020-3-30 11:41:33 | 显示全部楼层
好的,我只是授权转载者,误会了您,对不起!
回复

使用道具 举报

yhzg 当前离线
积分
237
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-3-3
查看详细资料
头像被屏蔽
发表于 2020-4-13 23:20:26 | 显示全部楼层
不错的插件,楼主辛苦了
回复

使用道具 举报

rainO0 当前离线
积分
375
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-10
查看详细资料
发表于 2020-4-14 22:46:23 | 显示全部楼层
支持大佬开发!
回复

使用道具 举报

迁冥DeeChael 当前离线
积分
726
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-6-29
查看详细资料
发表于 2020-6-30 16:49:38 来自手机 | 显示全部楼层
能不能适配一下1.16.1啊?
回复

使用道具 举报

2728163294 当前离线
积分
43
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-10
查看详细资料
发表于 2020-9-9 20:08:27 来自手机 | 显示全部楼层
这个插件非常的六拜啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-10-25 13:52 , Processed in 0.060199 second(s), Total 23, Slave 22 queries, Release: Build.2020.09.30 1852, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表