本帖最后由 iMoonDay 于 2023-1-23 00:08 编辑
在制作数据包的过程中遇到的predicates问题:我写了一个判断玩家主手物品nbt的predicates,json格式是这样的
复制代码
然后我用 /execute if predicate xxx:mainhand/xxx 来测试这个predicates,显示测试通过了,但是我按Q把他丢出去之后再次用前面的指令测试这个predicates它仍然显示测试通过,根据这个predicates来执行的指令也在正常工作,但是此时我是空手状态,问题就是它为什么还能判断我主手nbt是一样的呢?然后我把物品栏切到其他格子进行测试就变成了测试失败,但是我再切回最开始那个格子又变成测试通过了,而且仍然是空手状态。
不知道这是predicates的判定bug还是我的数据包出bug了?
已自行解决:通过添加判断主手是否为空气暂时解决这个问题,代码如下
复制代码
在制作数据包的过程中遇到的predicates问题:我写了一个判断玩家主手物品nbt的predicates,json格式是这样的
- {
- "condition": "minecraft:entity_properties",
- "entity": "this",
- "predicate": {
- "equipment": {
- "mainhand": {
- "nbt": "{xxx:{xxx: 1b}}"
- }
- }
- }
- }
然后我用 /execute if predicate xxx:mainhand/xxx 来测试这个predicates,显示测试通过了,但是我按Q把他丢出去之后再次用前面的指令测试这个predicates它仍然显示测试通过,根据这个predicates来执行的指令也在正常工作,但是此时我是空手状态,问题就是它为什么还能判断我主手nbt是一样的呢?然后我把物品栏切到其他格子进行测试就变成了测试失败,但是我再切回最开始那个格子又变成测试通过了,而且仍然是空手状态。
不知道这是predicates的判定bug还是我的数据包出bug了?
已自行解决:通过添加判断主手是否为空气暂时解决这个问题,代码如下
- [{
- "condition": "minecraft:entity_properties",
- "entity": "this",
- "predicate": {
- "equipment": {
- "mainhand": {
- "nbt": "{xxx:{xxx: 1b}}"
- }
- }
- }
- },{
- "condition": "minecraft:inverted",
- "term": {
- "condition": "minecraft:entity_properties",
- "entity": "this",
- "predicate": {
- "equipment": {
- "mainhand": {
- "items": [
- "air"
- ]
- }
- }
- }
- }
- }]