10.12.1~"を前提MODとしています。中級者向けのチュートリアルです。「NBT」を利用したデータ管理システムについての概論。関連リンクNBTとは[編集]NBTとはMinecraftで利用されているデータの管理システム、あるいは保存書式のようなものである。ゲームを終了した際に記録されるデータのほとんどすべてがNBT形式で(datファイルに)保存されている。(例外としてはプレイヤーの実績・統計、Forge式Config等)「NBTBase」クラスを基として様々な継承クラスがあるが、バニラ含め多くの場合「NBTTagCompound」クラスで管理されている。状況によっては、「NBTTagList」クラスで管理される場合もある。(Enchantmentなど)書式と扱える型[編集]NBTTagCompoundへのデータの読み書きはGetter,Setterを介して行う。<データ>);また、NBTTagCompoundの扱える型は以下の通りである。int配列それぞれのgetter,setterは以下の通りである。setIntArraysetterメソッドではそれぞれ以下のNBTBase継承クラスとして保管されるので、データ形式の違うものであっても同じ保存名を付けるとデータ不整合が起こる。setTagが用意されているため、より汎用的に扱うこともできる。NBTでデータを保存する方法[編集]NBTでデータを保存する方法は、NBTTagCompoundを用意して紐付ける方法と引数にNBTTagCompoundを持つwriteToNBTメソッドを利用する方法がある。NBTTagCompoundを用意して紐付ける方法ItemStackにNBTを保存する場合はこちらを用いる。ItemStack#hasTagCompoundメソッドで紐付けされてるNBTTagCompoundがあるかどうか判定し、ない場合はItemStack#setTagCompoundメソッドで新たに生成したNBTTagCompoundを紐付ける。紐付けられているNBTTagCompoundがあるなら、ItemStack#getTagCompoundメソッドから取得できる。WorldSavedData等はこちらを用いる。writeToNBT(あるいは類似名称のメソッド)をOverrideして、引数のNBTTagCompoundにデータを書き込む形となる。保存のタイミングはシステムの処理による。