可乐菌KeLe
rt,因加入了一个插件,其所给予玩家的奖励破坏了服务器的平衡,所以打算全部回收,如何做到符合要求的物品全部回收?

已知这些物品:
1. 是原版物品,但是拥有固定的名字
2. 其附魔是原版不可能存在的等级

幻心飞小骥
本帖最后由 幻心飞小骥 于 2023-1-14 10:41 编辑

原版有可用命令。
https://wiki.biligame.com/mc/%E5%91%BD%E4%BB%A4/clear例如:
  1. /clear @a minecraft:diamond{Name:"[{\"text\":\"sss\"}]",Enchantments:[{id:sharpness,lvl:100}]}
复制代码
清除玩家背包中名为sss,带有锋利100级附魔的钻石
可以加入物品数量参数,探测到新玩家得到奖励就对这个玩家执行命令把奖励扣回去
如果奖励的物品很独特,不可能通过其他渠道获得,也可以考虑直接用循环指令方块或数据包循环执行。

PixelWorld
本帖最后由 PixelWorld 于 2023-1-14 10:37 编辑

方法一使用papi变量清理
首先
papi ecloud download checkitem
papi reload
使用papi parse 玩家名字%checkitem_remove_mat:物品英文id,custommodeldat:id,amt:数量%


方法二 clear [玩家] [物品] [数据] [最大数量] [数据标签]

夜雨晨风丶
直接banitem或者banit禁用不是更好吗。清除不一定能清空所有玩家的吧

可乐菌KeLe
夜雨晨风丶 发表于 2023-1-14 10:32
直接banitem或者banit禁用不是更好吗。清除不一定能清空所有玩家的吧

问题在于后续打算通过更改该插件配置文件的方式以使后续的奖励不再破坏平衡,直接Ban会导致后续无法使用

可乐菌KeLe
幻心飞小骥 发表于 2023-1-14 10:31
原版有可用命令。
见https://wiki.biligame.com/mc/%E5%91%BD%E4%BB%A4/clear例如:
清除玩家背包中名为sss ...

这个应该对不在线的玩家无效吧?

可乐菌KeLe
PixelWorld 发表于 2023-1-14 10:32
方法一使用papi变量清理
首先
papi ecloud download checkitem

可以详细说明吗

夜雨晨风丶
可乐菌KeLe 发表于 2023-1-14 10:39
问题在于后续打算通过更改该插件配置文件的方式以使后续的奖励不再破坏平衡,直接Ban会导致后续无法使用 ...

不能换个物品材质去设置吗。不然确实很难全部清除

幻心飞小骥
可乐菌KeLe 发表于 2023-1-14 10:41
这个应该对不在线的玩家无效吧?

雀食。但完全可以循环执行这个命令,玩家一旦上线就clear。毕竟玩家不可能在离线的时候用它。前提是奖励的物品独特到只能靠奖励获得,保证clear不会误伤其他来源的同类物品。

PixelWorld

使用papi parse mcbbs %checkitem_remove_mat:Diamond_Sword,custommodeldat:如果有模型就填模型id,amt:1%

FireworkPolymer
本帖最后由 FireworkPolymer 于 2023-1-14 12:26 编辑

详见papiwiki
https://www.mcbbs.net/thread-1226244-1-1.html显示此变量可以直接从玩家背包删除对应物品,但是必须手动触发,因此我建议使用其他插件配合检测,例如ConditionalEvents
具体内容如下:
  1.   删除物品:
  2.     type: repetitive
  3.     conditions:
  4.     - '%checkitem_lorecontains:要检测的物品描述% equals yes or %checkitem_namecontains:要检测的物品名称%' #满足两个条件的一个就执行动作
  5.     actions:
  6.       default:
  7.       - 'remove_item: %checkitem_remove_lorecontains:要检测的物品描述%' #删除对应物品
  8.       - 'remove_item: %checkitem_remove_namecontains:要检测的物品名称%'
  9.       - 'message: &c此物品需要删除'
  10.       repetitive_time: 20 #重复检测的时间间隔,20tick为一秒
复制代码





二五五
本帖最后由 二五五 于 2023-1-14 12:35 编辑

直接用banitem with nbt禁用掉这个物品  可以查看教学禁用  此物品包含特定附魔
教程地址  嗯 不然贴这个连接 你可以百度 banitem with nbt 查看教程
随便拿一个带附魔的物品,然后输入/banitem add nl:ench nv:,然后按一下tab,nv的值就会填上了
我这里的值nv:[{lvl:3,id:16},{lvl:2,id:21}] ,一个锋利3,一个抢夺2

我们就拿ban锋利的例子来,锋利的附魔id是16,以上字符串中id就是附魔id,lvl就是附魔等级,
然后我们改一下命令,变成/banitem add nl:ench nv:js|value.indexOf("id:16")!=-1,然后回车