Open3
1.7.10NMSでエンティティのNBTのKeyを取得する
NBT.get(p, nbt -> {
Set<String> n = nbt.getKeys();
for (Iterator niter = n.iterator(); niter.hasNext(); ) {
String s = (String) niter.next();
p.sendMessage(s);
}
});
NBTAPIを使用
コード内の"NBT"クラスはこのAPIによって提供されています
もっと新しいバージョンなら、Persistent Data Storageなんかを使えばわざわざNMSをいじらずにできるような気がします。
追記: Persistent Data StorageはNBTとはちょっと違いそう
あくまでプラグイン側からデータを保持できるものであってサーバー自体のデータ(=NBT)が入ってるわけではないみたい?
追記2: Persistent Data StorageではなくPersistent Data Container
これはあくまで物の中にオリジナルのデータを永続的に入れることができるものであって、NBTとは関係なさそう
(Metadata API(https://www.spigotmc.org/threads/misunderused-apis-metadatable.546225/)はプラグインをリロードすると消えちゃう)