Open3

1.7.10NMSでエンティティのNBTのKeyを取得する

horohoro
NBT.get(p, nbt -> {
    Set<String> n = nbt.getKeys();
    for (Iterator niter = n.iterator(); niter.hasNext(); ) {
        String s = (String) niter.next();
        p.sendMessage(s);
    }
});
horohoro

もっと新しいバージョンなら、Persistent Data Storageなんかを使えばわざわざNMSをいじらずにできるような気がします。
https://www.youtube.com/watch?v=wz8oKcPUzHY

追記: Persistent Data StorageはNBTとはちょっと違いそう
あくまでプラグイン側からデータを保持できるものであってサーバー自体のデータ(=NBT)が入ってるわけではないみたい?

追記2: Persistent Data StorageではなくPersistent Data Container
これはあくまで物の中にオリジナルのデータを永続的に入れることができるものであって、NBTとは関係なさそう
(Metadata API(https://www.spigotmc.org/threads/misunderused-apis-metadatable.546225/)はプラグインをリロードすると消えちゃう)