等枫亭丶烟雨阁
服务端核心为1.16.5LoliServer,装上地皮插件后发现玩家在没有任何权限的情况下可以与不属于他自己地皮里的方块交互,且多个mod皆是如此,而原版则没有,请问如何做到像老版本的地皮一样保护好mod物品和方块

cnYeqi
新版本改为付费插件了吧,建议问下作者,免费版应该最高支持到1.15.2,换最新版试试。

浮生破梦
1.16建议用5.0版本之上,6.0版本之下

名副其实
https://www.spigotmc.org/resources/plotsquared-v6.77506/
请升级到最新版本

不过个人建议是这玩意本身就不该搭配模组

等枫亭丶烟雨阁
名副其实 发表于 2022-5-21 20:13
https://www.spigotmc.org/resources/plotsquared-v6.77506/
请升级到最新版本

6.几的版本试过了,依旧无用

真的太难了qwq
唯一方法:手动魔改
此插件本身就是为了插件服而设计,用混合端出现的BUG都不会受到官方的任何支持

等枫亭丶烟雨阁
真的太难了qwq 发表于 2022-5-22 00:08
唯一方法:手动魔改
此插件本身就是为了插件服而设计,用混合端出现的BUG都不会受到官方的任何支持 ...

那么请问如何做到手动魔改呢

无敌三脚猫
被cnpc封装的“玩家右键方块”事件有点缺陷,还是只能另外注册,就写在上次的脚本下面,把注册事件的流程写成函数本就是为了在同一页多次使用,没必要分开
其中,"dipi"是地皮世界的名字,你可以改成别的
  1. listenEvent("net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock",function(e){
  2. var player=e.getPlayer()
  3. if(player.func_130014_f_().func_234923_W_().func_240901_a_().func_110623_a()=="dipi"){
  4. var pos=e.getHitVec().func_216350_a()
  5. if(MinecraftForge.EVENT_BUS.post(new BlockEvent.BreakEvent(player.func_130014_f_(),pos,player.func_130014_f_().func_180495_p(pos),player)))
  6. e.setCanceled(true)
  7. }
  8. })
复制代码
这个写法其实有点……粗犷,不过堪堪够用了
你可以看到,这两次的改法很接近,我后来研究发现这两种bug都源于cat&loli偷懒了,cat&loli向bukkit传递的事件仅有4种,其中一种就是“玩家破坏方块”事件,这也是上述脚本能发挥作用的原因(不过我之前为“使用桶”事件写脚本的时候是其实误打误撞,觉得破坏方块事件写起来简单些),噷,也不指望cat能修了
说到底,万恶之源还是forge和bukkit不齿的结合
现在这个脚本的逻辑是——如果玩家不准破坏这个方块,那他就不能右键这个方块,换句话说,你不能在禁止玩家破坏方块的同时,允许玩家右键方块,对于地皮,我相信这两种权限肯定是密不可分的,对于res领地或其它类似性质的插件来说的话,这种写法意味着你不能在受保护的区域里设立一个人人都能右键的公共附魔台(之类的),但你也没说这方面的需求,仅仅是地皮,现有的写法足够了

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-5-20 21:32
被cnpc封装的“玩家右键方块”事件有点缺陷,还是只能另外注册,就写在上次的脚本下面,把注册事件的流程写 ...

感谢大佬的帮助,这算是解决很大一个问题了,这么多次都是您帮的我,十分感谢

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