もぐらさばでもCITがしたい!

Published by alumina on updated on

特殊なサーバーではCITがうまく動かないことがある。
それでもどうにかしてCITを使いたい人向け。

今回のサンプルファイル

色とか指定リソパ.zip

問題点

他プレイヤーの所持しているアイテムはCIT表示されないことがある。
これは、恐らくそのアイテムの名前がサーバー側から送信されていないから。
軽量化のため送信パケットが制限されているのかもしれない。

解決策

要するに、名前以外でCIT判定を行えばいいのだ。
でもユーザーが指定できるNBT情報は限られている。

使いたいアイテムのNBTを見る

ここでいうNBTはアイテムについてる細かい情報のこと。
確認するにはコマンドが必要。手持ちのNBTデータを表示できる。

/data get entity @s SelectedItem

例えば革の帽子は

だが、それを黄緑色に染色したものは

であり、display:{color:8439583}が増えている。
ここを指定すれば染色の色ごとにCITを適用できるわけだ。

革防具でCIT

上のような黄緑色に染色された革の帽子はこう指定できる。
kawa_boushi.propertiesを参照。

nbt.display.color=8439583

ただ、染色パターンは無限ではない。

色一覧: https://minecraft.fandom.com/ja/wiki/染料

帽子、上着、ズボン、ブーツ、馬鎧(クラフト可能)があるので、使い切ることはないとは思う。

防具着用時のCIT

防具の着用時には別の.properties指定が必要で、3Dモデルの適用はOptifineの仕様でできない。kawa_boushi_armor.propertiesを参照。

type=armor
items=leather_helmet

# 見せたいテクスチャ
texture.leather_layer_1_overlay=midori

# 使わないので透明なテクスチャ
texture.leather_layer_1=empty

# カラーコードを10進数で指定
# 公式ドキュメントでは16進数でもできるらしいがうまくいかない
nbt.display.color=8439583
midori.png

旗を使う

旗にはベースとなる16色、模様と色の情報がアイテムに記録されている。
通り数が多く、革より集めやすいと思う。
CITなので、設置した旗はテクスチャ変わりません。

pink_banner.propertiesを参照。

items=pink_banner
model=gutitu_bow

# 0で一番下の模様を指定する。複数の模様の指定も可能。

# 緑色
nbt.BlockEntityTag.Patterns.0.Color=13

# 山形の模様
nbt.BlockEntityTag.Patterns.0.Pattern=bt
元の旗
旗のNBT

花火の星

データの保存形式が特殊で色データは使えない。

花火の星のNBT