憨憨冰棍
本帖最后由 憨憨冰棍 于 2020-9-4 12:58 编辑
比如说获取到小麦的生长进度,熔炉中的物品等


像banitem 插件这种 获取到 Burntiem 的值 或者列出全部的 NBT路径(如果麻烦的话 这个我可以自己研究 )
主要是 不知道怎么才能 实现  NBTTagCompound nbt = new NBTTagCompound();
bukkit.craftbukkit.v1_7_R4

小鬼影sl
nbtedit

憨憨冰棍

我是写的插件 不是mod

96181998
如果是最新版本,请对着物品使用F3+i

获取NMS的物品然后获取

憨憨冰棍
雨 发表于 2020-9-4 13:00
获取NMS的物品然后获取

问题是这个是 方块 有没有详细点的

结城希亚
https://www.mcbbs.net/thread-984759-1-1.html

参考这里的代码

憨憨冰棍
结城希亚 发表于 2020-9-4 14:09
https://www.mcbbs.net/thread-984759-1-1.html

参考这里的代码

NBTAPI在启动时有报错 1.7.10 应该不可用

结城希亚
憨憨冰棍 发表于 2020-9-4 14:20
NBTAPI在启动时有报错 1.7.10 应该不可用

https://github.com/tr7zw/Item-NBT-API/issues/90


憨憨冰棍
结城希亚 发表于 2020-9-4 14:22
https://github.com/tr7zw/Item-NBT-API/issues/90

我的英文不好 里面的意思是 报错不影响使用嘛

结城希亚
憨憨冰棍 发表于 2020-9-4 14:44
我的英文不好 里面的意思是 报错不影响使用嘛

我英文也不好

可以正常用

憨憨冰棍
结城希亚 发表于 2020-9-4 14:48
我英文也不好

可以正常用
  1. Caused by: de.tr7zw.nbtapi.NbtApiException: Method not loaded! 'NMS_WORLD_GET_TILEENTITY_1_7_10'
  2.         at de.tr7zw.nbtapi.utils.nmsmappings.ReflectionMethod.run(ReflectionMethod.java:154) ~[?:?]
  3.         at de.tr7zw.nbtapi.NBTReflectionUtil.getTileEntityNBTTagCompound(NBTReflectionUtil.java:224) ~[?:?]
  4.         at de.tr7zw.nbtapi.NBTTileEntity.getCompound(NBTTileEntity.java:36) ~[?:?]
  5.         at de.tr7zw.nbtapi.NBTReflectionUtil.getData(NBTReflectionUtil.java:568) ~[?:?]
  6.         at de.tr7zw.nbtapi.NBTCompound.getShort(NBTCompound.java:244) ~[?:?]
  7.         at com.FBinggun.NBTS.Ls.hujiao(Ls.java:25) ~[?:?]
  8.         at sun.reflect.GeneratedMethodAccessor504.invoke(Unknown Source) ~[?:?]
  9.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
  10.         at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]
  11.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334) ~[JavaPluginLoader$1.class:1.7.1
  12. 0-R0.1-SNAPSHOT]
  13.         ... 16 more
复制代码
       
       
  NBTTileEntity nbt = new NBTTileEntity(e.getClickedBlock().getState());
               
                        System.out.println(nbt.getShort("growth"));



结城希亚
本帖最后由 结城希亚 于 2020-9-4 15:37 编辑

核心用最新版的试试?

或者可以去找作者发个issue

憨憨冰棍
结城希亚 发表于 2020-9-4 15:16
核心用最新版的史诗?

或者可以去找作者发个issue


U 端
在日常判断版本中 U端常常被判断错误

2015711978
蟹蟹大佬,我正巧需要

洞穴夜莺
方块没有NBT信息!!!
方块只有方块状态!!!
欲保存NBT请使用方块实体!!

憨憨冰棍
本帖最后由 憨憨冰棍 于 2020-9-5 10:16 编辑
洞穴夜莺 发表于 2020-9-5 09:54
方块没有NBT信息!!!
方块只有方块状态!!!
欲保存NBT请使用方块实体!! ...

有没有什么调用的方法 详细操作的方法 我想获取到 农业 农作物架中的种子信息

William_Shi
本帖最后由 William_Shi 于 2020-9-5 10:31 编辑
憨憨冰棍 发表于 2020-9-5 10:12
有没有什么调用的方法 详细操作的方法 我想获取到 农业 农作物架中的种子信息 ...

TileEntity操作复杂,属于NMS内容,Bukkit根本没有TileEntity,只有介于BlockState块状态,和TileEntity之间的不伦不类的TileState。通过TileState获取TileEntity,还不如直接走CraftWorld,当然不同版本通过CraftWorld获取TileEntity的方法不太一样。(1.12.2的BukkitAPI并没有TileState接口,但是其在高版本的实现类,仍然存在,且意义相同。所以本质上是可以使用TileState的实现类的,但是1.12.2显然采用CraftWorld方便些,而高版本应该是用TileState方便)

洞穴夜莺
憨憨冰棍 发表于 2020-9-5 10:12
有没有什么调用的方法 详细操作的方法 我想获取到 农业 农作物架中的种子信息 ...

如果是用Mod的话建议去看看Mod留出的API
然后用NMS获取TileEntity(方块实体)对象进行操作

憨憨冰棍
洞穴夜莺 发表于 2020-9-5 10:34
如果是用Mod的话建议去看看Mod留出的API
然后用NMS获取TileEntity(方块实体)对象进行操作 ...

Bukkit 能调用mod嘛?好像不行吧

洞穴夜莺
憨憨冰棍 发表于 2020-9-5 10:36
Bukkit 能调用mod嘛?好像不行吧

已知一些服务端是允许插件调用Mod的
因为Mod和NMS内容共用同一个ClassLoader(而插件是独立的PluginClassLoader)
所以理论上如果服务器核心没有编写额外的权限检查来禁止插件加载Mod类,那么插件访问Mod和访问NMS的能力是一样的