本帖最后由 inuyasha01 于 2020-3-24 13:30 编辑
原本的IC2-模式扫描仪可以通过该config 来实现对各种机器合成方式的添加
比如,对模式扫描仪来说,它可以扫描更多东西,之类
参见:
但 它存在一个局限性:
它很难删掉一个扫描方式,除非你直接从ic2的jar内核来更改,
不然删掉的config在再次启动服务器后一定会被jar内核里的内容覆盖掉
但改内核意味着 MD5变动,以及更多不稳定性的出现
此外,对于RPG+MOD服来说,扫描仪还可能存在一个隐性BUG,玩家用复制机RPG物品(?)
此问题在我服尚未验证成功,但依然不排除隐患
因此
咱们提供了一个可行,开源,且不卡服的优化办法(感谢Misaka。提的修改意见)
SnowkUUFixer - 1.1.0
安装此插件以后
会读取config中受限的ID列表
玩家不再能够将此物品放入扫描机中进行复制
杜绝了一系列原版不平衡物品的复制问题
测试了左右键选则限制 以及 Shift+右键快捷放置的限制
已考虑的因素 |
玩家用手 - 放违禁品到扫描仪中
玩家用Shift快捷键 - 防违禁品到扫描仪中
玩家用 漏斗 - 传送违禁品到扫描仪中
玩家用 IC2 弹出升级 - 传送违禁品到扫描仪中
玩家用 AE 线缆 - 传送违禁品到扫描仪中
玩家用 BC 管道 - 传送违禁品到扫描仪中
玩家用 铁轨+漏斗矿车 - 传送违禁品到扫描仪中
玩家用 植物魔法-多媒体火花物流 - 传送违禁品到扫描仪中 (实现中)
额外建议:
如果你服务器加了Quark模组,一定要限制发射器放置方块的特性
同理
AE模组的放置面板本身也可以绕开Banitem放置违禁品,需要关注
这样做是为了防止:
玩家用方块越权放置方块,绕开各类安全插件对玩家本身的监测
使用说明 |
放入plugins文件夹,
启动服务器,
待生成config文件后,
更改config文件
配置文件(一定要看) |
兼容性 |
当前版本仅支持Bukkit+Spigot 1.12.2
但前置支持1.8-1.15,所以未来可拓展性很强
也欢迎测试其他版本
期待您的反馈
开源与下载 |
TODO |
v1.1
软前置变硬前置
方块ID解析
reload功能
对植物魔法多媒体火花物流 的研究
最后,如能给你的服务器帮上忙的话,那就太好了
感谢评分~
本插件所用所有代码均为原创,不存在借用/抄袭等行为
漏斗之类的东西有做测试吗? 什么弹出升级啊之类的
Misaka。 发表于 2020-3-22 10:32
漏斗之类的东西有做测试吗? 什么弹出升级啊之类的
漏斗 潜影盒 弹出升级一类 以及其他MOD的东西无须担心
因为作者就没写复制方式 东西是根本放不进扫描机里的
具体参照帖子前两行那个网址,里面有config介绍,关于scanner和uu的ini文件里 就那些原版的东西
inuyasha01 发表于 2020-3-22 11:52
漏斗 潜影盒 弹出升级一类 以及其他MOD的东西无须担心
因为作者就没写复制方式 东西是根本放不进扫描 ...
en...
我的意思是 使用漏斗把东西放进复制机里之类的
太好了 我们服那群人把我十万金币换飞行权限的NPC道具复制了一组 我头都大了
本帖最后由 inuyasha01 于 2020-3-23 05:32 编辑
感谢提醒,我一开始没想到还可能会出现这种BUG 估计是大多数RPG+MOD服的漏洞吧。。
但我在1.12.2的187版工业2里测试,插件的指令物品即便是原版的素材,复制出来也是空NBT的原始物品,不会复制成带lore或者有功能的物品啊?
有点奇怪,但期待你那边的测试和反馈
ad1131762435 发表于 2020-3-22 18:05
太好了 我们服那群人把我十万金币换飞行权限的NPC道具复制了一组 我头都大了 ...
感谢提醒,我一开始没想到还可能会出现这种BUG 估计是大多数RPG+MOD服的漏洞吧。。
但我在1.12.2的187版工业2里测试,插件的指令物品即便是原版的素材,复制出来也是空NBT的原始物品,不会复制成带lore或者有功能的物品啊?
有点奇怪,但期待你那边的测试和反馈
inuyasha01 发表于 2020-3-23 05:28
感谢提醒,我一开始没想到还可能会出现这种BUG 估计是大多数RPG+MOD服的漏洞吧。。
但我在1.12.2的187 ...
是没有改名的物品啦。。因为我是自己想的利用商店扣除他们金币的办法 没想那么多 随便找了个物品就放出去了 现在他们已经不能复制了
本帖最后由 inuyasha01 于 2020-3-23 16:19 编辑
有点可惜,我看了一下午的API,发现spigot对于MOD中tiles方块的API支持还是不够全
就比如黑色羊毛id 35 数据值15 (35:15)
但所有MOD的tiles 返回数据值都是1。。。 方块名也全获取不到,全都是IC2_TE一个名字,
意思就是,要杀就杀一片,限制扫描仪周边的机器,就相当于限制所有机器周边不能放机器。。
最多最多,把SpigotAPI全巴拉一遍,能获取到这东西是个CraftCustomContainer 如下图
就很奇怪,因为我开始用玩家背包监测的时候可以获取到scanner这个方块名,而非inventory的类里面都只能对多识别出它是一台IC机器,至于是什么机器,无法获取。。。
后来在github看到了这个CraftCustomContainer 的源码。。
它就只调出来个inventory。。。。。。。。
所以。。。玩家手中物品信息可以获取全,背包和箱子等inventory类的内容可以获取全,
但世界内方块相关的东西,还是无法实现。。。
不知道有没有大佬可以实现出来,而且我看Banitem其实也是通过手上的物品来进行获取返回值来限制。。
包括LWC,它能限制方块锁定,但前提是它有个数据库支持。。咱们如果也写数据库,在玩家放下手中方块后就记录下这东西在世界内是不是扫描仪,是可以实现全面监控的。但长期数据库的调取,保存。。服务器后期绝对承受不住,打个比方。 CoreProtect。。。
以至于现在对于你说的 限制扫描仪周边放方块, 和 限制漏斗往扫描仪里输入东西,都很难实现。。
除非有什么办法可以 直接从世界坐标 获取到tiles的物品名称
不然就是一棒子打死,只要名字是IC2_TE全给限制上,漏斗,弹出升级无法往所有机器输入东西, 或者说机器周边无法放任何第二台机器
有点瓶颈了。。
我现在只能建议,用Banitem把模式存储水晶的NBT给dump下来ban掉,针对不同NBT来封禁物品。。但意思也就是,我这插件,用处也就不大了
Misaka。 发表于 2020-3-22 16:35
可以...嗯
比如 复制机旁边只能放置指定方块之类的 感觉要简单些
有点可惜,我看了一下午的API,发现spigot对于MOD中tiles方块的API支持还是不够全
就比如黑色羊毛id 35 数据值15 (35:15)
但所有MOD的tiles 返回数据值都是1。。。 方块名也全获取不到,全都是IC2_TE一个名字,
意思就是,要杀就杀一片,限制扫描仪周边的机器,就相当于限制所有机器周边不能放机器。。
最多最多,把SpigotAPI全巴拉一遍,能获取到这东西是个CraftCustomContainer 如下图
就很奇怪,因为我开始用玩家背包监测的时候可以获取到scanner这个方块名,而非inventory的类里面都只能对多识别出它是一台IC机器,至于是什么机器,无法获取。。。
后来在github看到了这个CraftCustomContainer 的源码。。
它就只调出来个inventory。。。。。。。。
所以。。。玩家手中物品信息可以获取全,背包和箱子等inventory类的内容可以获取全,
但世界内方块相关的东西,还是无法实现。。。
不知道有没有大佬可以实现出来,而且我看Banitem其实也是通过手上的物品来进行获取返回值来限制。。
包括LWC,它能限制方块锁定,但前提是它有个数据库支持。。咱们如果也写数据库,在玩家放下手中方块后就记录下这东西在世界内是不是扫描仪,是可以实现全面监控的。但长期数据库的调取,保存。。服务器后期绝对承受不住,打个比方。 CoreProtect。。。
以至于现在对于你说的 限制扫描仪周边放方块, 和 限制漏斗往扫描仪里输入东西,都很难实现。。
除非有什么办法可以 直接从世界坐标 获取到tiles的物品名称
不然就是一棒子打死,只要名字是IC2_TE全给限制上,漏斗,弹出升级无法往所有机器输入东西, 或者说机器周边无法放任何第二台机器
有点瓶颈了。。
我现在只能建议,用Banitem把模式存储水晶的NBT给dump下来ban掉,针对不同NBT来封禁物品。。但意思也就是,我这插件,用处也就不大了
ad1131762435 发表于 2020-3-23 12:05
是没有改名的物品啦。。因为我是自己想的利用商店扣除他们金币的办法 没想那么多 随便找了个物品就放出去 ...
有UU机的话商店物品的设置一定要仔细斟酌下。是的
修好了就好
inuyasha01 发表于 2020-3-23 15:40
有点可惜,我看了一下午的API,发现spigot对于MOD中tiles方块的API支持还是不够全
就比如黑色羊毛id 35 ...
太难了吧...这也是没有办法了 或许 可以研究一下你说的那种方法?
ban了nbt不太行 扫描出来后 不去碰他 直接用类似漏斗一样功能的东西 直接输出到下一步
就跳过了检测 XD
感谢分享
本帖最后由 inuyasha01 于 2020-3-24 09:09 编辑
一个好消息。 我实现了 23333 换了个思路, 通过读取NBT
找到了可用的API,不过要加前置了就是,测试了资源占用没什么问题
下午更新
Misaka。 发表于 2020-3-23 16:49
太难了吧...这也是没有办法了 或许 可以研究一下你说的那种方法?
ban了nbt不太行 扫描出来后 不去碰他 ...
一个好消息。 我实现了 23333 换了个思路, 通过读取NBT
找到了可用的API,不过要加前置了就是,测试了资源占用没什么问题
下午更新
本帖最后由 inuyasha01 于 2020-3-24 12:15 编辑
已更新1.1,可以去下载了。
没太理解你说的。。是想单独监测一个坐标上的方块是什么方块么? 这个的话用我这代码的确可行,可以判断单独方块是什么,比如它是AE的什么tile类型,或者是AE的什么方块,当然了 也包括他包含的所有NBT。这要感谢前置API了。可以看看源码
思路就是玩家打碎或者放置的时候监测一下,如果怕资源占用过多就写个if提前中断,只对特定方块生效。这样
Misaka。 发表于 2020-3-24 09:15
大哥 nb!
已更新1.1,可以去下载了。
没太理解你说的。。是想单独监测一个坐标上的方块是什么方块么? 这个的话用我这代码的确可行,可以判断单独方块是什么,比如它是AE的什么tile类型,或者是AE的什么方块,当然了 也包括他包含的所有NBT。这要感谢前置API了。可以看看源码
思路就是玩家打碎或者放置的时候监测一下,如果怕资源占用过多就写个if提前中断,只对特定方块生效。这样
inuyasha01 发表于 2020-3-24 12:14
已更新1.1,可以去下载了。
不可带尾缀吗?
不支持子ID的话 工业2的导线和机器放下后 ID都是一样的
又或者说 插件是检测拿在手上时的id状态,而不是放置在地上以后的吗?
MCBBS有你更精彩~
Misaka。 发表于 2020-3-24 12:29
不可带尾缀吗?
不支持子ID的话 工业2的导线和机器放下后 ID都是一样的
又或者说 插件是检测拿在手上 ...
导线和机器ID不同的。。我特意看了下,不过这几天我把ID解析写好,只是上午懒了下
inuyasha01 发表于 2020-3-24 12:34
导线和机器ID不同的。。我特意看了下,不过这几天我把ID解析写好,只是上午懒了下 ...
不会吧 我特意用创世神查看了 拿在手上时分别是4102和4124 后面的子id不一样
放置在地上后 id都是258 只是子id不一样 一个是10一个是1
Misaka。 发表于 2020-3-24 12:40
不会吧 我特意用创世神查看了 拿在手上时分别是4102和4124 后面的子id不一样
放置在地上后 id都是258 只是 ...
放在地上以后ID都变成258 是tilesID么 ?
咱们是通过方块ID直接判断的
感谢楼主的分享~
Misaka。 发表于 2020-3-24 12:40
不会吧 我特意用创世神查看了 拿在手上时分别是4102和4124 后面的子id不一样
放置在地上后 id都是258 只是 ...
发现问题了,感谢
我今晚重写下
inuyasha01 发表于 2020-3-24 18:06
发现问题了,感谢
我今晚重写下
写插件真的是一件非常困难的事情呐 加油!
好插件!服务器可以用得上!
ummm看来这个前置得用nms
我还以为和protocollib有什么通用的方法序列化来着
我还以为和protocollib有什么通用的方法序列化来着
bannedBlockId下的数字ID改成别的也是不能和工业机器放在一起 像是锁死的
而且 只要先放下扫描机 再在扫描机旁边放机器就可以绕过阻止了
而且 只要先放下扫描机 再在扫描机旁边放机器就可以绕过阻止了
前置链接无法打开,楼主大大能不能下载放论坛让下载
如果可以反向填写允许扫描的方块ID就好了。。
感谢,uu复制确实难以管理