不能开游戏 所以直接问了
1. 实体在游戏过程中的时候不是用 NBT 储存的,而是存为一个 Java 对象;
2. 实体的对象有两个方法,一个能把当前对象转换为 NBT,一个能把 NBT 转换为对象;
3. 当你使用 data 命令直接修改一个实体的 NBT 时,游戏首先将该实体转换为 NBT,然后对该 NBT 进行操作,最后把修改过的 NBT 转换回对象;
4. 由 3 可知,当你使用 data 命令修改被骑乘实体的 Passengers 时,游戏首先将被骑乘实体对象转换为 NBT(该 NBT 的 Passenger 中包含由骑乘实体转换后的 NBT),然后对该 NBT 进行操作,最后把修改过的 NBT 转换回被骑乘实体对象;
5. 你可以发现,在 4 中被操作的是被骑乘实体,骑乘实体只经历了把对象转换为 NBT 的过程,而没有经历把 NBT 设置回对象的过程;
6. 因此,不能;
7. 我不会编程。
2. 实体的对象有两个方法,一个能把当前对象转换为 NBT,一个能把 NBT 转换为对象;
3. 当你使用 data 命令直接修改一个实体的 NBT 时,游戏首先将该实体转换为 NBT,然后对该 NBT 进行操作,最后把修改过的 NBT 转换回对象;
4. 由 3 可知,当你使用 data 命令修改被骑乘实体的 Passengers 时,游戏首先将被骑乘实体对象转换为 NBT(该 NBT 的 Passenger 中包含由骑乘实体转换后的 NBT),然后对该 NBT 进行操作,最后把修改过的 NBT 转换回被骑乘实体对象;
5. 你可以发现,在 4 中被操作的是被骑乘实体,骑乘实体只经历了把对象转换为 NBT 的过程,而没有经历把 NBT 设置回对象的过程;
6. 因此,不能;
7. 我不会编程。
梓榆 发表于 2019-11-3 20:39
1. 实体在游戏过程中的时候不是用 NBT 储存的,而是存为一个 Java 对象;
2. 实体的对象有两个方法,一个能 ...
这也是为啥物品的tag能改。
因为它还真是一个NBT,即使是在游戏运行的时候。
IIRC