
Java版のアップデート「1.13」には、コマンド等の技術的な要素に関する追加・変更が多数含まれています。新要素「データパック」やターゲットセレクターのNBT引数、executeコマンドの大幅進化など、配布ワールドが大きく進化する新要素が盛り沢山ですが、同時に「データ値廃止」「あらゆるコマンドの構文変更」など、知っておかないとあなたのワールドがぶっ壊れるような変更も含んでいます。今一度確認して、あなたのワールドを1.13に対応させましょう。
- 最終更新日時
- [sc name="moddate"]
1.13.1-Pre2仕様に更新
参考にさせて頂いたページ様
1.13 – Official Minecraft Wiki
https://minecraft.gamepedia.com/1.13
1.13/Flattening – Official Minecraft Wiki
https://minecraft.gamepedia.com/1.13/Flattening
1.13.1 – Official Minecraft Wiki
https://minecraft.gamepedia.com/1.13.1
目次
- コマンドに関する総合的な変更・改善点
- デバッグ画面の変更・改善点
- コマンドブロックの仕様変更、success countがresultに
- 向き相対座標(ローカル座標)が使えるようになった
- ブロックのデータ値廃止、状態やNBTタグはIDの後に続けて書くように
- アイテムのデータ値廃止、耐久値やNBTタグはIDの後に続けて書くように
- 多くのアイテムのIDやブロックの状態の書き方が変更された
- エンティティのターゲットセレクターの書き方に関する変更点
- エンティティのNBTタグを引数の中に書けるように
- m→gamemodeなど、いくつかの引数の名前が変更
- エンティティの選択順を指定するsort引数が追加
- limit引数ではマイナスの数値が使えず、遠くから指定したい際は[sort=furthest]と書く必要がある
- 引数の数値の範囲は「..」を使って指定する方式に変更
- scoreboardの値は、{}で囲って指定するように
- tagやtypeなどの引数を繰り返して書けるように、ただし例外あり
- 引数やブロック状態を指定する際にスペースが使えるように
- 意味のない引数はエラーになるように
- 座標引数でブロックの中央が基準になることはなくなった
- x,y,z,distance,x_rotation,y_rotation引数がdouble型になり小数が使えるように
- ゲームモード引数で数字が使えなくなった
- NBTタグでエンティティなどの名前を指定する際、厳格なJSONで書かなければいけなくなった
- アイテム・エンティティ・ブロックのNBTタグの追加・削除・変更まとめ
- リソースパックのバージョンが「4」になった
- 新機能「データパック」が実装、いくつかのファイルは移動が必要に
- データパックに入れるファイルの追加・変更点まとめ
- 水の仕様変更における技術的な変更点 - waterloggedとは何なのか
- 行動を計測するstatの書き方が変更、新statも追加
- 新しいステータス効果がいくつか追加
- 新しいパーティクルがいくつか追加
- 釣り竿の浮きにIDが割り振られたが、召喚はできない
- 翻訳のファイルがJSONファイルに変わった
- 様々なコマンドの追加・変更・改善点
- advancementコマンド
- blockdataコマンド
- bossbarコマンド
- clearコマンド
- cloneコマンド
- dataコマンド
- datapackコマンド
- difficultyコマンド
- defaultgamemode/gamemodeコマンド
- effectコマンド
- enchantコマンド
- entitydataコマンド
- executeコマンド
- experienceコマンド
- fillコマンド
- forceloadコマンド
- gameruleコマンド
- giveコマンド
- killコマンド
- listコマンド
- locateコマンド
- opコマンド
- functionコマンド
- particleコマンド
- playsoundコマンド
- replaceitemコマンド
- statsコマンド
- stopsoundコマンド
- scoreboardコマンド
- setblockコマンド
- tagコマンド
- teamコマンド
- teleportコマンド
- testfor/testforblock/testforblocksコマンド
- timeコマンド
- toggledownfallコマンド
- tpコマンド
- triggerコマンド
- weatherコマンド
<
p class="strong-notice">※この記事の内容は[sc name="moddate"]現在の最新のSnapShot(プレリリース含む)の仕様に基づいて書いています
コマンドに関する総合的な変更・改善点
コマンドがより大文字小文字を区別するように、できるだけ小文字で書こう
- コマンドはよりケースセンシティブになり、大文字と小文字が厳しく区別されるようになった
- 例えば、/scoreboard ObJeCtIvEs ...と書くとエラーになる。スコア名など以外は、全部小文字で書こう
サーバーのコマンドは通常世界の初期スポーン地点から実行されるように
- functionやコンソールから実行するコマンドは、通常世界の初期スポーン地点で実行されるようになった
デバッグ画面の変更・改善点
照準を合わせた液体の情報を確認できるように
- デバッグ画面の右側に、照準を合わせている液体の情報が表示されるようになった
- 液体はブロックとは別扱いなので、液体の向こうのブロックの情報も同時に表示される
- また左側には、ブロックと同様に液体の座標も表示される
F3+Cで座標がコピーできるように
- F3+Cで、現在位置の座標がコピーできるようになった
- クリップボードには/execute in <現在のディメンション> run tp @s <座標> <向き>という形式でコピーされる。つまり現在のディメンションでその位置にその向きでテレポートするコマンドだ
F3+Iでブロック/エンティティのNBTタグがコピーできるように
- F3+Iで、照準を合わせているブロックまたはエンティティの、サーバーサイドのNBTがコピーできるようになった
- 実際にはNBTだけでなく、ブロックの場合はsetblockコマンド、エンティティの場合はsummonコマンドとしてコピーされる
- 例えば(-72,56,70)にある東向きの水源化した空のチェストに照準を合わせてF3+Iを押すと、/setblock -72 56 70 minecraft:chest[facing=east,type=single,waterlogged=true]{Items:[],Lock:""}という形でコピーされる
- F3+Shift+Iなら、クライアントサイドのデータを取得できる
- オペレーター権限のないプレイヤーは、NBTタグをコピーできない。コマンドとIDと座標だけコピーされる
tickの長さやパケット数の情報が表示されるように
- デバッグ画面左上に、サーバーの名前(マルチプレイのみ)、tickの長さ(シングルプレイのみ)、送受信しているパケットの数が表示されるようになった
- txはクライアントが送信しているパケット数、rxは受信しているパケット数を示す
コマンドブロックの仕様変更、success countがresultに
- コマンドブロックの出力信号は今まで「success count」だったが、「result」になった
向き相対座標(ローカル座標)が使えるようになった
- 向き相対座標(ローカル座標)が実装された
- ^ 記号を使えば、ワールドではなくローカル相対座標を指定できる
- ローカル相対座標は、コマンドを実行するエンティティの向きが基準になる
- ワールド相対座標(~記号を使うやつ)と同様に、距離はエンティティの底面から計測される
- 向き相対座標(ローカル座標)は、^左 ^上 ^前の順に書く
- 例えば、/setblock ^ ^ ^3 stone ならプレイヤーの3ブロック前に石が設置される
ブロックのデータ値廃止、状態やNBTタグはIDの後に続けて書くように
- これまでブロックIDの後に書いてきた「データ値」は廃止された
- その代わりに、多くのブロックに新しいIDが割り振られた
- これまでデータ値の代わりに書いていたブロックの状態は、空白を空けずに四角カッコで囲んで書く
- 例えばかまどでは、minecraft:furnace[facing=north] といった感じに書く
- minecraft:redstone_wire[power=15,north=up,south=down]という風に、ブロックの状態はコンマで区切って書く
- minecraft:chest[facing=north]{CustomName:"すごいチェスト"}という風に、NBTタグを続けて書くことも可能
- コマンドでは、ID[状態]{NBTタグ} をまとめて<ブロック>として扱う
- redstone_wire[power=15]と書いた場合、レッドストーンパウダーの動力の強さだけを判定し、他の状態は気にしない
- ブロックがサポートしていない状態を書くとエラーになる
- 書かなかった状態はデフォルトの値になる
アイテムのデータ値廃止、耐久値やNBTタグはIDの後に続けて書くように
- これまでアイテムIDの後に書いてきた「データ値(ダメージ値)」は廃止された
- データ値で指定していた木材の種類やベッドの色などには、それぞれにIDが割り振られる
- 樫の木はminecraft:planks 1からminecraft:oak_planksになる
- 耐久値を指定したい時は、minecraft:wooden_sword{Damage:10}という風に、IDの後にNBTタグとして{Damage:○○}と書く必要がある
- 以下の解説では、ID{NBTタグ}をまとめて<アイテム>と書く
- これに合わせて、ルートテーブルなどのJSONで使っていたdataとset_dataは使えなくなった
多くのアイテムのIDやブロックの状態の書き方が変更された
- 「平坦化(Flattening)」の一環として、多くのアイテム・ブロックのIDが変更・統合・分割された
- データ値が廃止されたため、データ値で指定していたものの多くに新しいIDが割り振られた
- 例えば花崗岩はstone 1からgraniteになった
- また、多くのブロックの状態の書き方も変わっている
- 変更されたID/ブロックの状態一覧表はこちら▼の記事を参照してほしい
- 1.13で変更されたアイテム・エンティティ等のID/ブロックの状態一覧表
https://www.napoan.com/java-113-id-bs-changes/
エンティティのターゲットセレクターの書き方に関する変更点
エンティティのNBTタグを引数の中に書けるように
- [nbt={}]引数が実装
- @e[nbt={Cool:1b}]という風に、引数内でNBTタグを指定できる
- @e[nbt=!{Uncool:1b}]という風に、!を付ければ「このNBTタグ以外」の指定もできる
m→gamemodeなど、いくつかの引数の名前が変更
- いくつかの引数の名前が変更された
- 変更される引数は以下の通り
- m → gamemode
- l・lm → level
- r・rm → distance
- rx・rxm → x_rotation
- ry・rym → y_rotation
- c → limit
エンティティの選択順を指定するsort引数が追加
- エンティティを選ぶ並び順を指定する、[sort=]引数が追加された
- [sort=nearest]は@pセレクタではデフォルト。最寄りのエンティティから選ぶ
- [sort=furthest]は遠くのエンティティから選ぶ([c=-5]といったマイナスの数値に代わる機能)
- [sort=random]は@rセレクタではデフォルト。ランダムに選ぶ
- [sort=arbitrary]は@e, @aセレクタではデフォルト。並び替えが行われない
limit引数ではマイナスの数値が使えず、遠くから指定したい際は[sort=furthest]と書く必要がある
- c=引数から名前が変更された[limit=]引数では、マイナスの数値を指定できない
- 遠くのエンティティから順番に選びたい場合は、新しく実装されたsort=引数を使って[sort=furthest]と併記する必要がある
引数の数値の範囲は「..」を使って指定する方式に変更
- 引数は「最小」「最大」に分けて書いていたが、これからは1つにまとめて書く必要がある
- [level=10..12]と書けば、「レベル10以上12以下」が指定できる
- [level=5..]は「レベル5以上」を意味する
- [level=..15]は「レベル15以下」を意味する
scoreboardの値は、{}で囲って指定するように
だいぶ前にこの仕様がSSに実装されてから、ずっと見落としてました。本当に申し訳ありませんでした!
- スコアの値を指定するときは、{}を使ってまとめて指定するようになった
- 例えば、scores={foo=1,bar=1..5}という風に書く
- level引数などと同様に、ドットを2つ打って範囲を指定できる。score_○○_min=と書く必要はもうない!
tagやtypeなどの引数を繰り返して書けるように、ただし例外あり
- タグを複数指定したい時などに、同じ引数を繰り返し書けるようになった
- [tag=foo,tag=bar,tag=!baz]は「fooとbarが付いてbazが付いていない」を意味する
- [type=!cow,type=!chicken]は「ウシでもニワトリでもないエンティティ」を意味する
- [type=cow,type=chicken]は無効になる。なぜならエンティティはウシとニワトリの両方にはなれないから
引数やブロック状態を指定する際にスペースが使えるように
- @e[name="Super Monster"]という風に、引数やブロック状態でスペースが使えるようになった
意味のない引数はエラーになるように
- limit=0, level=-10, gamemode=purpleなど、意味のない引数は許可されない(エラーになる)
座標引数でブロックの中央が基準になることはなくなった
- x, z引数はもうブロックの中央を基準にしない。(x=0がx=0.5になることはない)
- これらの引数で小数が使えるようになるので、従来の動作をさせたいならx=0.5と書けばいい
x,y,z,distance,x_rotation,y_rotation引数がdouble型になり小数が使えるように
- x, y, z, distance, x_rotation, y_rotation引数がdouble型になり、12.34のような小数が使えるようになった
- 例: /execute if entity @e[x=11.4,y=51.4,z=8.1,distance=19.19] run say Hello
ゲームモード引数で数字が使えなくなった
- m引数に代わるgamemode(ゲームモード)引数では数字のIDは使えない。(例: gamemode=1などはだめ)
- 数字のIDは数年前に非推奨になった
NBTタグでエンティティなどの名前を指定する際、厳格なJSONで書かなければいけなくなった
- これからは{CustomName:"○○"}と書くとエラーになる
- なぜなら、NBTタグで名前を指定する際に正式なJSON形式で書かなくてはいけなくなったから
- 例えば{CustomName:"○○"}は以下のように書き換える必要がある
- {CustomName:""○○""}
- {CustomName:"{"text":"○○"}"}
- この「」はエスケープ文字と言って、「この次の文字は文字列に含みませんよ」と示すために使う
- アイテムの名前でも同様に仕様が変わった。{display:{Name:"○○"}}と書くと反映されない
- 例えば{display:{Name:"○○"}}は以下のように書き換える必要がある
- {display:{Name:""○○""}}
- {display:{Name:"{"text":"○○"}"}}
- とにかく「『"』の前に『』を入れる」と思って書けばいい。今までの書き方がガバガゆるゆるだっただけだ
進捗(Advancements)を条件にするadvancements引数が追加
- 進捗の達成状況を条件にする、advancements=引数が追加された
- 例えば advancements={foo=true,custom:bar=false} なら、進捗fooが完全に達成されていて名前空間customのbarが達成されていないことが条件になる
- advancements={something={joken1=true,joken2=false}} なら、進捗somethingのうちの条件「joken1」が達成されていて条件「joken2」が達成されていないことが条件になる
アイテム・エンティティ・ブロックのNBTタグの追加・削除・変更まとめ
アイテムのNBTタグの追加・削除・変更まとめ
- (削除) アイテムのデータタグの一番上の階層のDamageタグが削除された
- (追加) Damageはアイテムのtagタグ内に追加されたが、これは耐久値の指定だけに用いる
- (追加) mapタグが地図のtagタグ内に追加された
- (変更) 盾のBaseタグの色の数字が、一貫性のために順番が逆になった (例えば黒色は0ではなく15になった)
エンティティのNBTタグの追加・削除・変更まとめ
- 新Mobイルカ用のNBTタグとして、TreasurePosX、TreasurePosY、TreasurePosZ、GotFish、CanFindTreasureが追加された
- 新Mobファントム用のNBTタグとして、AX、AY、AZ、Sizeが追加された
- 新Mobカメ用のNBTタグとして、HomePosX、HomePosY、HomePosZ、TravelPosX、TravelPosY、TravelPosZ、HasEggが追加された
- 新Mobファントム用のNBTタグとして、AX、AY、AZ,、Sizeが追加された
- (変更) オオカミのCollarColorタグの数字が、一貫性のために順番が逆になった (例えば黒色は0ではなく15になった)
- (変更) エンダーマンのCarriedとCarriedDataタグは、CarriedBlockStateタグに統合された
- これからは{Name:"<ID>",Properties:{<プロパティ名>:"<値>"}}と書く
- (変更) 矢のinTileタグはinBlockStateに名前が変更された
- これからは{Name:"<ID>",Properties:{<プロパティ名>:"<値>"}}と書く
- (削除) 矢のinDataタグは削除された
- (変更) トロッコのDisplayTileとDisplayDataタグはDisplayStateタグに統合された
- これからは{Name:"<ID>",Properties:{<プロパティ名>:"<値>"}}と書く
- (変更) Falling BlocksのBlockとDataタグはBlockStateタグに統合された
- これからは{Name:"<ID>",Properties:{<プロパティ名>:"<値>"}}と書く
- (変更) Area Effect CloudのParticleParams1とParticleParams2タグはParticleParamsタグに名前変更された
- (変更) アイテムのエンティティのThrowerとOwnerは今まで文字列型だったが、LとMという2つのLong型の数字を組み合わせて指定するようになった
- (変更) 雪球、卵、エンダーパールのownerは今まで文字列型だったが、LとMという2つのLong型の数字を組み合わせて指定するようになった
ブロックのNBTタグの追加・削除・変更まとめ
- 地図用のNBTタグとして、bannersが追加された (旗の位置を保存するため)
- (削除) 花瓶のブロックエンティティとしてのデータが削除された (内容ごとにIDが割り振られたため)
- (削除) 音符ブロックのブロックエンティティとしてのデータが削除された (NBTタグで指定していたことはブロックの状態欄に書くように)
- (削除) ベッドのブロックエンティティとしてのデータが削除された (色ごとにIDが割り振られたため)
- (変更) トラップチェストのブロックエンティティIDが、trapped_chestからminecraft:trapped_chestに変更された
- (変更) ピストン移動部のブロックエンティティのBlockIdとBlockDataタグがBlockStateタグに統合された
- これからは{Name:"<ID>",Properties:{<プロパティ名>:"<値>"}}と書く
- (削除) Mobの頭(Skull)のRotタグが削除された (ブロックの状態欄で[rotation=0-15]と書くように)
- (削除) Mobの頭(Skull)のブロックエンティティとしてのデータが、player_headとwall_player_head以外は削除された
- (変更) Mobの頭(Skull)のブロックエンティティIDが、skullからminecraft:player_headに変更された
- (変更) 旗のPatterns</span>タグ内のColorタグの数字が、一貫性のために順番が逆になった (例えば黒色は0ではなく15になった)
- (変更) ジュークボックスのRecordタグが削除された
リソースパックのバージョンが「4」になった
- リソースパックのpack.mcmetaの"pack_format"が「4」になった
{
"pack": {
"pack_format": 4,
"description": "Napoan Resource Pack"
}
}
新機能「データパック」が実装、いくつかのファイルは移動が必要に
- 「データパック」は、pack.mcmetaファイルを直下に含むzipもしくはフォルダー
- 複数のデータパックを同時に読み込むことができる。(もちろんデータパックは無くても良い)
- 「データパック」の作成手順/フォルダ構成/使い方
https://www.napoan.com/data-pack-perfect-guide/
- データパックの場所や、実装方法は▲の記事を読んでね
- 「データパック」の実装に伴い、進捗、ファンクション、Loot Table、ストラクチャーのファイルをデータパック内に移動する必要がある
- データパックは/ワールドフォルダ/datapacks/パック名(.zip)/という風にワールドに添付する
- zip圧縮してもしなくてもかまわない
- (ワールド)/data/advancements/(名前空間)/(進捗ファイル)にある進捗ファイルは、データパックに入れてデータパックのzipまたはフォルダ/data/(名前空間)/advancements/(進捗ファイル)となるように移動する必要がある
- (ワールド)/data/functions/(名前空間)/(ファンクションファイル)にあるファンクションファイルは、データパックに入れてデータパックのzipまたはフォルダ/data/(名前空間)/functions/(ファンクションファイル)となるように移動する必要がある
- (ワールド)/data/loot_tables/(名前空間)/(LootTableファイル)にあるLootTableファイルは、データパックに入れてデータパックのzipまたはフォルダ/data/(名前空間)/loot_tables/(LootTableファイル)となるように移動する必要がある
- (ワールド)/structures/(ストラクチャーファイル)にあるストラクチャーファイルは、データパックに入れてデータパックのzipまたはフォルダ/data/(名前空間)/structures/(ストラクチャーファイル)となるように移動する必要がある
データパックに入れるファイルの追加・変更点まとめ
カスタムレシピ機能実装、jsonでオリジナルレシピを作成可能に
- JSONを書いてオリジナルレシピを作成できるようになった
- ワールドフォルダ/datapacks/データパックフォルダー/data/(名前空間)/recipes フォルダ内にレシピのjsonフォルダを配置する
- レシピのjsonファイルの書き方の例1 (無形レシピ)
{ "type": "crafting_shapeless", "ingredients": [ { "item": "minecraft:dirt" } ], "result": { "item": "minecraft:diamond" } }
▲は、土からダイヤモンドができあがるレシピ。置き方は指定していない。
- レシピのjsonファイルの書き方の例2 (有形レシピ)
{ "type": "crafting_shaped", "pattern": [ "###", "#^#", "###" ], "key": { "#": { "item": "minecraft:diamond_block" }, "^": { "item": "minecraft:diamond" } }, "result": { "item": "minecraft:nether_star" } }
▲は、ダイヤモンドをダイヤブロックで囲むとネザースターができるレシピ。2つの記号を使って置き方を指定している。
- レシピのjsonファイルの書き方の例3 (有形レシピ)
{ "type": "crafting_shaped", "pattern": [ "# #" ], "key": { "#": { "item": "minecraft:diamond" } }, "result": { "item": "minecraft:emerald" } }
▲は、1つ間を空けてダイヤモンドを置けばエメラルドができるレシピ。ダイヤ2つは作業台のどの段に置いても構わない。
- レシピのjsonファイルの書き方の例4 (無形レシピ)
{ "type": "crafting_shapeless", "ingredients": [ { "item": "minecraft:dirt" }, [ { "item": "minecraft:coal" }, { "item": "minecraft:charcoal" } ] ], "result": { "item": "minecraft:diamond" } }
▲は、土と、石炭または木炭を1つでダイヤモンドができるレシピ。材料の中にさらに四角カッコを書くことで、様々な組み合わせでクラフトできるようになる
- "type" を "crafting_chaped" にすれば有形レシピになり、"crafting_shapeless" にすれば無形レシピになる
- 無形レシピの場合は、"ingredients"で素材を指定する
- 有形レシピの場合、"pattern" で文字を使って置き方を示し、"key" で各文字に対応するアイテムを指定する
- タグを指定する際は "item": "名前空間:ID" の代わりに "tag": "名前空間:タグ名" と書く
- レシピファイルに "group": "任意のグループ名" と書けば、レシピのグループを設定できる
- グループ名は何でもいい。同じグループ名のレシピがあれば、レシピブックでアイテムを右クリックした際にまとめて表示される
新機能「タグ」実装、ブロック・アイテム・液体・ファンクションをまとめられる
- 「タグ」は、ブロック・アイテム・液体・ファンクションをまとめられる新機能
- ワールドフォルダ/datapacks/データパックフォルダー/data/(名前空間)/tags フォルダ内に配置する
- ブロック/アイテム/ファンクションのタグは、フォルダを分けて管理する
- tags/blocks フォルダにはブロックのタグを定義するJSONファイルを入れる
- tags/fluids フォルダには液体のタグを定義するJSONファイルを入れる
- tags/items フォルダにはアイテムのタグを定義するJSONファイルを入れる
- tags/functions フォルダにはファンクションのタグを定義するJSONファイルタグを入れる
タグファイルの書き方
- ブロックのタグのjsonファイルの書き方の例
{ "replace": false, "values": [ "minecraft:prismarine", "minecraft:prismarine_bricks", "minecraft:dark_prismarine", "minecraft:sea_lantern" ] }
例えばこのファイルをdata/napoan/tags/blocks/sea_blocks.jsonとして保存すれば、#napoan:sea_blocksでプリズマリン、プリズマリンレンガ、ダークプリズマリン、シーランタンをまとめて指定できるようになる
- タグはjson形式で書き、.json拡張子で保存する
- デフォルトでは、他のデータパックに同じ名前のタグファイルが複数ある場合、内容が合成される
- しかし "replace": true と書けば、それより優先度の低いデータパックのタグが上書きされる
- "values": の中に、タグにまとめるブロック/アイテムのIDやファンクションの場所を書く
- タグにまとめたブロック/アイテムを指定する際は、先頭にハッシュを付け、#(名前空間):(タグ名) の形で指定する
- ただしカスタムレシピまたは進捗のファイル内で指定する際は "tag": "(名前空間):(タグ名)" の形で指定する
ファンクションのタグとminecraft:tickについて
- data/minecraft/tags/functions/tick.json に書いたファンクションは、毎tick実行される
- 言い換えれば、minecraft:tick にタグ付けされたファンクションは毎tick実行される
ファンクションのタグとminecraft:loadについて
- data/minecraft/tags/functions/load.json に書いたファンクションは、ワールドをロードした際に実行される
- 言い換えれば、minecraft:load にタグ付けされたファンクションはワールドをロードした際に実行される
デフォルトで用意されているブロック/アイテム共通のタグ
- ブロック/アイテム共通のタグとして、デフォルトで以下が用意されている
- minecraft:acacia_logs, minecraft:banners, minecraft:birch_logs, minecraft:buttons, minecraft:carpets, minecraft:coral, minecraft:coral_plants, minecraft:dark_oak_logs, minecraft:doors, minecraft:jungle_logs, minecraft:logs, minecraft:oak_logs, minecraft:planks, minecraft:rails, minecraft:sand, minecraft:saplings, minecraft:spruce_logs, minecraft:stone_bricks, minecraft:wooden_buttons, minecraft:wooden_doors, minecraft:wooden_pressure_plates, minecraft:wooden_slabs, minecraft:wooden_stairs, and minecraft:wool
デフォルトで用意されているブロックのタグ
- ブロック専用のタグとして、デフォルトで以下が用意されている
- minecraft:anvil, minecraft:enderman_holdable, minecraft:flower_pots, minecraft:slabs, minecraft:stairs, minecraft:wall_corals
- また、プレイヤーがスポーンできるブロックを定義する minecraft:valid_spawn タグもある
- 液体のしずくのパーティクルが表示されないブロックを指定する impermeable タグもある。デフォルトでガラスと板ガラスが指定されている
デフォルトで用意されているアイテムのタグ
- アイテム専用のタグとして、デフォルトで以下が用意されている
- minecraft:boats
デフォルトで用意されている液体のタグ
- tagにはblocks/items/functionsと並んでfluidsカテゴリが用意されており、デフォルトでは以下のタグが用意されている
- ただし現在これらを編集しても液体システムを変更することはできない
- minecraft:lava: "minecraft:lava", "minecraft:flowing_lava"
- minecraft:water: "minecraft:water", "minecraft:flowing_water"
Loot Table(ドロップ表)に関する追加・変更点
- 埋められた宝のチェストの中身を定義するためのルートテーブル、buried_treasure が追加された
- 新しいfunction、set_name が追加された。アイテムに名前を付ける際に使う
新しい進捗と、進捗用トリガーが追加
- 以下の新しい進捗が追加された
- 生臭い仕事: 魚を釣る
- 戦術的漁業: 釣り竿無しで魚を釣る(=バケツを使う)
- 一発ジョーク: (なにかに)トライデントを投げつける
- とてもとても恐ろしい: 雷で村人を打つ (=召雷エンチャントを付けたトライデントを村人に使う)
- 進捗作成時に使える、以下のトリガーが追加された
- minecraft:fishing_rod_hooked: プレイヤーがアイテムまたはエンティティを釣ると検知
- minecraft:channeled_lightning: プレイヤーが召雷エンチャントをMobに使うと検知
- minecraft:filled_bucket: プレイヤーがバケツをなにかで満たすと検知
ファンクションの読み込み時にコマンドの不備が分かるように
- 「ファンクション」システムの解説
https://www.napoan.com/pc-112-functions-guide/
- ファンクションの読み込み時に、ファンクション内のコマンドの不備が分かるようになった
- 例えばバージョン1.17.バナナでワールドが動くか確認したい時は、1.17.バナナでワールドを開けばいい。エラーがあればログに表示される
水の仕様変更における技術的な変更点 - waterloggedとは何なのか
- 水源が、以下のブロックの"中に"設置できるようになった。つまり、以下のブロックを「水源化」できるということ
- 水源化できるブロック: チェスト、トラップチェスト、階段、半ブロック、フェンス、(丸石とかの)壁、鉄柵、板ガラス、エンダーチェスト、トラップドア、ハシゴ、看板
- 水はそれらのブロックから流れ出ることはできるが、それらのブロックに流れて入ることはできない
- 水で満たされたブロックは、水ブロックとして扱われる(泳いだりできる)
- それらのブロックを水で満たした際は、塞がれた面以外から水流が流れる(例えば水源化した階段の後ろから水流が出てくることはない)
- flowing_waterとflowing_lavaは削除された
- 水源化できるブロックは全てwaterloggedのブロック状態を持つ
- 泡やコンブといったブロックは常に水源として扱われる
行動を計測するstatの書き方が変更、新statも追加
- minecraft.(stat名) → minecraft.custom:minecraft:(stat名) に変更された
- 例: minectaft:jump → minecraft.custom:minecraft:jump
- minecraft.(stat名).(ID) → minecraft.(stat名):minecraft.(ID) に変更された
- 例: minectaft.craftItem.diamond_sword → minecraft.crafted:minecraft.diamond_sword
- また、ファントムの実装に合わせて新しいstatも追加された
- time_since_sleep - プレイヤーがベッドから出るとリセットされる。つまり最後に起きてからの時間が計測される
新しいステータス効果がいくつか追加
- 水関連の新要素追加のため、以下のパーティクルが追加された
コンジットパワー
- IDは minecraft:conduit_power
- 無限に水中呼吸できるようになる
- 水中の視界が格段に良くなる
- 水中での採掘速度が速くなる
イルカの好意
- IDは minecraft:dolphins_grace
- 泳ぎが速くなる
落下速度低下
- IDは minecraft:slow_falling
- 落下する速度が遅くなり、落下ダメージがなくなる
- ダッシュジャンプで4ではなく5.5ブロック分跳べるようになる
- これを付けて農地に落下しても荒らされない
新しいパーティクルがいくつか追加
- 水関連の新要素追加のため、以下のパーティクルが追加された
- minecraft:bubble_column_up
- minecraft:bubble_pop
- minecraft:current_down
- minecraft:squid_ink
釣り竿の浮きにIDが割り振られたが、召喚はできない
- 釣り竿の浮きの部分に、ついにID fishing_bobber が割り振られた
- しかしこれは検知用であり、召喚はできない
翻訳のファイルがJSONファイルに変わった
- 翻訳ファイルは今まで.langという拡張子が付いていて、「ID=中身」という風にイコールで繋いで書いていた
- しかし1.13からはJSONファイルを使うようになり、"ID":"中身"という風な書き方になった
様々なコマンドの追加・変更・改善点
advancementコマンド
- /advancement test 機能は削除された
- ターゲットセレクタ引数で進捗を条件にできるようになったため
blockdataコマンド
- dataコマンドの登場に従い廃止された
bossbarコマンド
- /bossbar コマンドが実装
- ボスのような体力バーを自作し、値を代入・取得できる
- [Minecraft 1.13] ボスのような体力バーを作り、MobのHPを反映させる方法
https://www.napoan.com/je-bossbar-command-guide/
- 詳しい使い方は上記記事にまとめている
clearコマンド
- データ値が廃止され、アイテムID・ブロックIDにくっつけてNBTタグを指定できるようになったので、構文が変更された
- /clear [<ターゲット>] [アイテム] [データ値] [数量] [NBTタグ] → /clear [<ターゲット>] [アイテム] [数量]
cloneコマンド
- ブロックの指定方法の変更に伴い、cloneコマンドの構文が変更された。
- /clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> filtered [force|move|normal] <ブロックID> <データ値> → /clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> filtered <ブロック> [force|move|normal]
- /clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> [replace|masked] [force|move|normal] <ブロックID> <データ値> → /clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> [replace|masked] [force|move|normal]
- ▲に従って、既存のcloneコマンドは全て書き直す必要がある。
dataコマンド
- 新コマンド/dataが実装された
- /entitydata コマンドと /blockdata コマンドがこれに置き換えられた
- /data merge entity <ターゲット> <NBT> : 指定したターゲットにNBTを合成する。かつての/entitydataコマンドと同じ動作をする
- /data merge block <座標> <NBT> : 指定したブロックにNBTを合成する。かつての/blockdataコマンドと同じ動作をする
- /data get entity <ターゲット> : 指定したターゲットの全NBTタグを表示する
- /data get block <座標> : 指定したブロックの全NBTタグを表示する
- /data get entity <ターゲット> <NBTの種類> <倍率> : 指定したターゲットの、指定したNBTを、指定した倍率をかけて取得する。倍率はデフォルトで1
- /data get block <座標> <NBTの種類> <倍率> : 指定したブロックの、指定したNBTを、指定した倍率をかけて取得する。倍率はデフォルトで1
- <NBTの種類> は A.B.C[0] のように書く。この場合指定したターゲットの {A:{B:{C:[114,514]}}} の114が取得できる
- ドットでNBTタグの親子関係を指定し、でNBT内の要素を指定する
- Inventory[0].Count で {Inventory:[{Count:1}]} の1を取得できる
- 上手く使って、NBTタグを自在に取得して活用しよう!
- /data remove block <座標> <NBTの種類> : 指定したブロックの指定したNBTタグを削除する
- /data remove entity <ターゲット> <NBTの種類> : 指定したターゲットの指定したNBTを削除する。ただしプレイヤーのNBTは削除できない
datapackコマンド
- 新コマンド/datapackが実装された
- 指定したデータパックを無効化したり、優先順位を指定して有効化できる
- なお、データパックはデフォルトでは全て有効なものとして読み込まれる
- /datapack disable <データパック名> : 指定したデータパックを無効化する
- /datapack enable <データパック名> : 指定したデータパックを有効化する
- /datapack enable <データパック名> first : 指定したデータパックを最低の優先順位で有効化する
- /datapack enable <データパック名> last : 指定したデータパックを最高の優先順位で有効化する
- /datapack enable <データパック名> before <基準になる既存のデータパック名> : 指定したデータパックを、指定した既存のデータパックよりひとつ低い優先順位で有効化する
- /datapack enable <データパック名> after <基準になる既存のデータパック名> : 指定したデータパックを、指定した既存のデータパックよりひとつ高い優先順位で有効化する
difficultyコマンド
- difficultyコマンドで難易度を指定する際、数字や略称が使えなくなった
- /difficulty 2 → /difficulty normal
- /difficulty p → /difficulty peaceful
- ▲に従って、数字や略称を使っているdifficultyコマンドは書き直す必要がある。
defaultgamemode/gamemodeコマンド
- gamemodeコマンド・defaultgamemodeコマンドでゲームモードを指定する際、数字や略称が使えなくなった
- /gamemode 1 → /gamemode creative
- /defaultgamemode sp → /defaultgamemode spectator
- ▲に従って、数字や略称を使っているgamemodeコマンド・defaultgamemodeコマンドは書き直す必要がある。
effectコマンド
- effectコマンドの構文が、曖昧さを無くすために2種類に分かれた
- /effect <entity> <effect> → /effect give <entity> <effect>
- /effect <entity> clear → /effect clear <entity> [<effect>]
- ▲に従って、既存のeffectコマンドは全て書き直す必要がある。
enchantコマンド
- /enchantコマンドが廃止された
- これからは新コマンドの「/modifyitem」を使おう、ということになっているが、17w45aにはまだmodifyitemコマンドが実装されていない
entitydataコマンド
- 廃止された
executeコマンド
- executeコマンドの構文が大幅に変更された。従来のexecuteコマンドは全て書き換える必要がある。
- /executeの後に書く「サブコマンド」が複数追加された。
- コマンドの実行者を決める「as」
- コマンドの実行座標を決める「positioned」
- 実行者の向きを決める「rotated」
- 向いている対象を決める「facing」
- ディメンションを決める「in」
- 位置と向きとディメンションを決める「at」
- 向き相対座標やfacingの基準を決める「anchored」
- 実行座標の小数点以下を切り捨てる「align」
- 実行に必要なブロックを指定する「block」
- 実行に必要な合致するブロックの範囲を指定する「blocks」
- 実行に必要なエンティティを指定する「entity」
- 2つのターゲットのスコアを比較する「score」
- 実行結果を代入する「store」
- これらを組み合わせて書いた後、「run」と書いて、最終的に実行するコマンドを書く。
- executeコマンドの新しい構文
- /execute <サブコマンド> <サブコマンドのオプション> [サブコマンド] [サブコマンドのオプション] ... run <コマンド>
実行者を指定する「as」サブコマンド
- /execute as <エンティティ> run <コマンド> → 指定したエンティティ"として"コマンドを実行する (実行者が変わるが、向き、実行位置は変わらない)
実行位置を指定する「positioned」サブコマンド
- /execute positioned <x y z> run <コマンド> → 指定した座標でコマンドを実行する
- /execute positioned as <エンティティ> run <コマンド> → 指定したエンティティの"位置で" コマンドを実行する
- どちらも実行者、向きは変わらず、実行位置が変わる
- 例: /execute as @e[tag=foo] positioned -11 45 14 run say Hello! (fooタグが付いたエンティティが、(-11,45,14)で「Hello!」と言う)
実行者の向きを指定する「rotated」サブコマンド
- /execute rotated <y軸の回転> <x軸の回転> run <コマンド> → 指定した角度を向いているものとしてコマンドを実行する
- /execute rotated as <エンティティ> run <コマンド> → 指定したエンティティと同じ角度を向いているものとしてコマンドを実行する
- どちらも実行者、実行位置は変わらず、向きが変わる
- 例: /execute as @e[tag=foo] rotated as entity @e[tag=bar] run tp ^ ^ ^3 (fooタグが付いたエンティティが、barタグが付いたエンティティを向いて前に3m動く)
向いている対象を指定する「facing」サブコマンド
- /execute facing <x y z> run <コマンド> → 指定した座標を向いているものとしてコマンドを実行する
- /execute facing entity <エンティティ> (eyes|feet) run <コマンド> → 指定したエンティティの、目または足のほうを向いているものとしてコマンドを実行する
- どちらも実行者、実行位置は変わらず、向きが変わる
- 例: /execute as @e[tag=foo] facing -11 45 14 run tp ^ ^ ^3 (fooタグが付いたエンティティが、(-11,45,14)を向いて前に3m動く)
実行するディメンションを指定する「in」サブコマンド
- /execute in (overworld|the_end|the_nether) run <コマンド> → 指定したディメンションでコマンドを実行する
- 例: /execute in the_nether run tp @a[team=Red] 0 64 100 (Redチームのプレイヤー全員が、ネザーの(0,64,100)に移動する)
- この機能のおかげで、ディメンションをまたいでテレポートしたりできるようになった。大革命だ
実行位置と向きとディメンションを全部指定する「at」サブコマンド
- asは実行者、positionedは位置、rotated/facingは向き、inはディメンションを指定するが、実行者以外をまとめて変えるのがatサブコマンドだ
- 例: /execute @e[tag=foo] ~ ~ ~ say Hello! → /execute at @e[tag=foo] run say Hello! (fooタグが付いたエンティティが、今いる位置の今の向きのままで、今のディメンションのまま「Hello!」と言う)
向き相対座標の基準を指定する「anchored」サブコマンド
- anchored (eyes|feet)サブコマンドを使えば、向き相対座標の基準を指定できる
- 例えば anchored feet と書けば、そのコマンドでは足を基準に向き相対座標やfacing機能を使った際の位置が決定する
実行位置の座標を整数にする「align」サブコマンド
- align <axis>サブコマンドを使えば、指定した軸の座標を整数に直してくれる
- 例えば /execute positioned as <entity>... だと<entity>の位置でコマンドが実行されるが、エンティティの位置によって実行位置はx=114.5,y=148.1,z=0.931のような小数になることが多いはずだ。この座標を整数にしたい場合にalignサブコマンドが役に立つ。
- /execute align xz ... と書けば、x座標とz座標の値が小数点以下を切り捨てて整数に直される
- 例えば実行位置がx=-1.8,y=2.3,z=5.9の場合にalign xと書けば、実行位置はx=-2,y=2.3,z=5.9になる
- 例えば実行位置がx=2.4,y=-1.1,z=3.8の場合にalign xyzと書けば、実行位置はx=2,y=-2,z=3になる
testforblock/testforblocks/testforコマンドの代わりになる「block」「blocks」「entity」「score」サブコマンド
- 以下のサブコマンドは、ifまたはunlessを最初に書いて使う
- ifを書いた場合は後続の条件に合えば実行され、unlessを書いた場合は条件に合わなければ実行される
- /execute <if|unless> block <x y z> <ブロックID> run <コマンド> → 指定した座標に指定したブロックがあれば(unlessと書いた場合なければ)実行する (testforblockコマンドやdetect機能に代わる機能)
- /execute <if|unless> blocks <範囲の始点のx y z> <範囲の終点ののx y z> <比較先のx y z> (all|masked) run <コマンド> → 指定した範囲が比較先に合致すれば(unlessと書いた場合合致しなければ) 実行する (testforblocksコマンドに代わる機能)
- /execute <if|unless> entity <エンティティ> run <コマンド> → 指定したエンティティが存在すれば(unlessと書いた場合存在しなければ)実行する (testforコマンドに代わる機能)
- 例: /execute @e ~ ~ ~ detect ~ ~ ~ stone say 石がある! → /execute at @e if block ~ ~ ~ stone run say 石がある! (エンティティが、その位置に石があれば「石がある!」と言う)
- 例: /execute @e[tag=bar] ~ ~ ~ detect ~ ~ ~ grass summon pig → /execute positioned as @e[tag=bar] if block ~ ~ ~ grass run summon pig (コマンド実行者が、その場に草ブロックがあるbarタグが付いたエンティティの位置でブタを召喚する)
- 例: /execute as @a[tag=summoner] positioned as @e[tag=a] if entity @e[tag=b,distance=..5] run summon pig (summonerタグが付いたプレイヤーが、aタグが付いたエンティティの位置で、半径5ブロック以内にbタグが付いたエンティティが存在すれば、ブタを召喚する)
スコアボードの値を比較する「score」サブコマンド
- このサブコマンドもifまたはunlessが必要
- <if|unless> score <ターゲット> <オブジェクト> (<|<=|=|>=|>) <比較するターゲット> <比較するオブジェクト> : 指定したターゲットのオブジェクトの値と、比較するターゲットのオブジェクトの値を比較する
- <if|unless> score <ターゲット> <オブジェクト> matches <数値の範囲> : 指定したターゲットのオブジェクトの値が指定した範囲にあるか調べる。
- <数値の範囲>には単に数字を書いてもいいし、1..5という風に書けば範囲を指定できる
- 例: /execute if score napoan test > napoan2 test as napoan run say 俺の勝ち! : napoanのtestの値がnapoan2のtestの値より大きければ、napoanが「俺の勝ち!」と言う
- 例: /execute if score napoan test matches 2..4 as napoan run say 俺の勝ち! : napoanのtestの値が2~4ならば、napoanが「俺の勝ち!」と言う
statsコマンドに代わる「store」サブコマンド
- store (success|result) score <ターゲット> <オブジェクト> → コマンドの実行結果を指定したターゲットの指定したスコアボードオブジェクトに代入する
- store (success|result) bossbar <ボスバーのID> (value|max) → コマンドの実行結果を、指定したボスバーに値または最大値として代入する
- store (success|result) entity <ターゲット> <NBTの種類> <byte|double|float|int|long|short> <倍率> → コマンドの実行結果を、指定したターゲットの指定したNBTに指定した型で指定した倍率をかけて代入する
- store (success|result) block <座標> <NBTの種類> <byte|double|float|int|long|short> <倍率> → コマンドの実行結果を、指定したブロックの指定したNBTに指定した型で指定した倍率をかけて代入する
- <NBTの種類> は A.B.C[0] のように書く。この場合指定したターゲットの {A:{B:{C:[114,514]}}} の114が取得できる
- ドットでNBTタグの親子関係を指定し、[]でNBT内の要素を指定する
- Inventory[0].Count で {Inventory:[{Count:1}]} の1を取得できる
- result は従来の AffectedBlocks, AffectedEntities, AffectedItems, QueryResult が統合されたもの
- success はコマンドが成功した回数。通常は0か1だが、executeコマンドのasモードを使った際など、コマンドが分割されている場合は2以上になり得る
- スコアボードに代入する場合、オブジェクトが存在する必要があるが、statsコマンドとは違い初期の値を代入しておく必要はない(作成してすぐ代入できる)
- コマンドが完全に実行し終わった時に値が代入される
- コマンドの実行に失敗し、successが0になった時は、resultも0になる
- 例: /execute as @e[tag=foo] at @e[tag=boo] if entity @e[tag=bar,distance=..5] store result score @a[tag=player] obj1 run kill @e[tag=enemy,distance=..5] (fooタグが付いたエンティティが、booタグが付いたエンティティの位置で、barタグが付いたエンティティが半径5ブロック以内に存在すれば、「半径5ブロック以内のenemyタグが付いたエンティティをキル」し、その結果をplayerタグが付いたプレイヤーの"obj1"に代入する)
experienceコマンド
- /xpコマンドは、新しい/experienceコマンドのエイリアス(代替)になった
- tellの代わりにmsgが使えるような関係
- /experienceコマンドは、3つのモードから構成されている
- /experience add <players> <amount> [points|levels]
- <amount>の分だけの経験値ポイントもしくはレベルを<players>に追加で与える(デフォルトではポイントを与える)
- ポイントを与えた場合でも、普通にプレイヤーをレベルアップさせることはできる
- マイナスの値を書くこともでき、書いた場合経験値を減らす
- 経験値を減らしてレベルダウンさせることもできる
- /experience set <players> <amount> [points|levels]
- <players>の経験値ポイントまたはレベルを、<amount>の値にセットする。(デフォルトではポイントを指定する)
- ターゲットの現在のレベルでは不可能なポイントにセットすることはできない
- レベルを変更した場合、経験値ポイントのパーセンテージは前のレベルと同じに保たれる
- /experience query <player> (points|levels)
- <player>の経験値ポイントかレベルの値を取得する
fillコマンド
- ブロックの指定方法の変更に伴い、fillコマンドの構文が変更された
- /fill <x y z> <xt yt zt> <ブロックID> <データ値> replace [置換するブロックのID] [置換するブロックのデータ値] → /fill <x y z> <xt yt zt> <ブロック> replace [置換するブロック]
- /fill <x y z> <xt yt zt> <ブロックID> <データ値> [destroy|hollow|keep|outline|replace] [NBTタグ] → /fill <x y z> <xt yt zt> <ブロック> [destroy|hollow|keep|outline|replace]
- ▲に従って、既存のfillコマンドは全て書き直す必要がある。
forceloadコマンド
※forceloadコマンドは「1.13.1」の新コマンドです。1.13では使えません
- 新コマンド/forceloadが実装された
- 常時読み込むチャンクを追加する
- 以下、<x> <y>はデバッグモードで確認できる"チャンクの"座標である
- /forceload add <x> <y> : 指定したチャンクを常時読み込むチャンクにする
- /forceload query <x> <y> : 指定したチャンクが常時読み込むチャンクになっているか確認する
- /forceload remove <x> <y> : 指定したチャンクを常時読み込むチャンクから除外する
gameruleコマンド
- gameruleコマンドは、不明なゲームルールをサポートしなくなった(いわゆる"カスタムゲームルール")
- ミスタイプが公式のルールのように動作してしまい、カスタムゲームルール機能が多くのトラブルをもたらしていた
- カスタムゲームルールはエラーになりやすく、使いづらかった
- 代わりにfunctionやscoreboardを使えば機能を減らさずに実現できる(実際はこっちのほうが色々なことができる!)
- 既存のカスタムゲームルールは使えなくなり、公式のゲームルールのみ使えるようになった
- friendlyfire は friendlyFire に名称変更された
- gameLoopFunction ルールは削除された
- 代わりに、datapacks/データパック名/data/minecraft/tags/functions/tick.jsonに毎tick実行したいファンクションを書く
- tick.jsonの書き方
- 以下のように書くと、data/napoan/functions/system/start.mcfunction と data/napoan/functions/system/magic_item.mcfunction と data/napoan/functions/event/boss.mcfunction が毎tick実行される
{ "values": [ "napoan:system/start", "napoan:system/magic_item", "napoan:event/boss" ] }
giveコマンド
- データ値が廃止され、アイテムID・ブロックIDにくっつけてNBTタグを指定できるようになったので、構文が変更された
- /give <プレイヤー> <アイテム> [数量] [データ値] [NBTタグ] → /give <プレイヤー> <アイテム> [数量]
- 例: /give @p minecraft:diamond 1 0 {Display:{Name:"だいや"}} → /give @p minecraft:diamond{display:{Name:"だいや"}} 1
killコマンド
- これからは「/kill」だけ書いて実行するとエラーになる
- なぜならプレイヤーが実行する場合もターゲット指定が必須になったから
- 自分をキルしたい場合は /kill @s を実行しよう
listコマンド
- シングルプレイでも使えるようになった
locateコマンド
- 結果の座標をチャット欄でクリックすることで、そこにテレポートできるようになった
- 高さが取得できない構造物で、返されるy座標が「?」の代わりに「~」になった
- executeコマンドのstoreサブコマンドで結果を代入する際に、構造物までの絶対距離を代入するようになった
- 今までTempleにまとめられていた構造物が、個別に指定するようになった: Desert_Pyramid、Igloo、Jungle_Pyramid、Swamp_Hut
opコマンド
- プレイヤー名の代わりに、ターゲットセレクタも使えるようになった
functionコマンド
- functionコマンドのif/unless引数は廃止された。
- 代わりに、executeコマンドのif/unless機能を使えばいい
- /function foo if @e[tag=bar] → /execute if entity @e[tag=bar] then function foo
particleコマンド
- particleコマンドのparams引数は廃止された。
- 例えばblock(旧blockdust/blockcrack)パーティクルでブロックの種類を指定する際は、パーティクル名の後に続けてIDを入力する
- 例: /particle block minecraft:polished_granite ~ ~ ~ 0 0 0 1 100
- また、以下のパーティクルの名前が変更された
- mobspellambient -> ambient_entity_effect
- angryvillager -> angry_villager
- blockdust, blockcrack -> block
- damageindicator -> damage_indicator
- dragonbreath -> dragon_breath
- driplava -> dripping_lava
- dripwater -> dripping_water
- reddust -> dust
- spell -> effect
- mobappearance -> elder_guardian
- enchantmenttable -> enchant
- magiccrit -> enchanted_hit
- endrod -> end_rod
- mobspell -> entity_effect
- largeexplosion -> explosion
- hugeexplosion -> explosion_emmiter
- fallingdust -> falling_dust
- fireworksspark -> firework
- wake -> fishing
- happyvillager -> happy_villager
- instantspell -> instant_effect
- iconcrack -> item
- slime -> item_slime
- snowballpoof -> item_snowball
- largesmoke -> large_smoke
- townaura -> mycelium
- explode -> poof
- droplet -> rain
- sweepattack -> sweep_attack
- totem -> totem_of_undying
- suspended -> underwater
- witchmagic -> witch
- take -> 削除された
- footstep -> 削除された
- depthsuspend -> 削除された
playsoundコマンド
- Tabキーでサウンドイベント名を自動補完できるようになった
replaceitemコマンド
- データ値が廃止され、アイテムID・ブロックIDにくっつけてNBTタグを指定できるようになったため、構文が変更された
- /replaceitem block <座標> <スロット> <アイテム> [数量] [データ値] [NBTタグ] → /replaceitem block <座標> <スロット> <アイテム> [数量]
- replaceitemコマンドでスロットを指定する際、スロット名の先頭に書いていたslot.は必要無くなった
- 例えば、以前の slot.hotbar.1 は hotbar.1 と書く
statsコマンド
- statsコマンドは廃止された。
- 代わりにexecuteコマンドのstoreモードを使おう。
stopsoundコマンド
- stopsoundコマンドで、カテゴリの代わりに*を書けばカテゴリに関係無くサウンドを停止可能に
- 例: stopsound @a * oto : 全カテゴリの「oto」というサウンドイベントを停止
scoreboardコマンド
- scoreboardコマンド内の、tagとteam機能は廃止された。
- 代わりに独立したコマンドとして/tagと/teamコマンドが追加された
- またscoreboardコマンドの末尾にNBTタグを書くとエラーになるように。これからはNBTタグはターゲットセレクタ内に書く
- modify機能が追加された
- /scoreboard objectives modify <objective> rendertype hearts → 指定したスコアを一覧表示でハートの数で表示するようにする
- /scoreboard objectives modify <objective> rendertype integer → 指定したスコアを一覧表示で従来どおり整数で表示するようにする
- /scoreboard objectives modify <objective> displayname <表示名> → 指定したスコアの表示名を変更する
setblockコマンド
- データ値が廃止され、アイテムID・ブロックIDにくっつけてNBTタグを指定できるようになったので、構文が変更された
- /setblock <座標> <ブロック> [データ値] [モード] [NBTタグ] → /setblock <座標> <ブロック> [モード]
tagコマンド
- 新コマンド/tagが実装された
- scoreboardコマンドのtag機能を抜き出したもの
- 構文は以前のtag機能と同じ
- /tag <プレイヤー> add <タグ名> : プレイヤーにタグを追加する
- /tag <プレイヤー> remove <タグ名> : プレイヤーの指定したタグを削除する
- /tag <プレイヤー> list : 指定したプレイヤーに付いているタグ一覧を表示する
teamコマンド
- 新コマンド/teamが実装された
- scoreboardコマンドのteam機能を抜き出したもの
- 構文は以前のteam機能と同じだが、optionはmodifyに名称変更された
- /team add <チーム名> [チームの表示名] : 新しいチームを追加する
- /team empty <チーム名> : 指定したチームの全てのエンティティを脱退させる
- /team join <チーム名> [エンティティ] : 指定したエンティティをチームに参加させる。エンティティを指定しない場合はコマンド実行者が参加する
- /team leave <チーム名> [エンティティ] : 指定したエンティティをチームから脱退させる。エンティティを指定しない場合はコマンド実行者が脱退する
- /team list [チーム名] : チーム一覧を表示する。チームを指定した場合はそのチームに在籍するメンバー一覧を表示する
- /team modify <チーム名> <オプション> <オプション> : 指定したチームのオプションを編集する (当たり判定など)
teleportコマンド
- 構文がシンプルにまとめられた
- /teleport <テレポート先エンティティ> → 実行者が指定したエンティティの位置へ移動する。回転や向きの指定はできない
- /teleport <x y z> → 実行者が指定した座標へ移動する。回転や向きの指定はできない
- /teleport <ターゲット> <テレポート先エンティティ> → 指定したエンティティが指定したエンティティの位置へ移動する。回転や向きの指定はできない
- /teleport <ターゲット> <x y z> [yRot xRot] → 指定したエンティティが指定した座標へ移動する。さらに、回転角度の指定もできる
- /teleport <ターゲット> <x y z> facing [x y z] → 指定したエンティティが指定した座標へ移動する。さらに、向きの指定もできる
- /teleport <ターゲット> <x y z> facing entity <向くエンティティ> [feet|eyes] → 指定したエンティティが指定した座標へ移動する。さらに、向くエンティティの指定もでき、目と足どちらを向くか選択可能
- ついにディメンションをまたいでテレポートできるようになった。詳細はexecuteコマンドの節を参照
testfor/testforblock/testforblocksコマンド
- executeコマンドにentity/block/blocks機能が実装されたことにより、testfor/testforblock/testforblocksコマンドは廃止された
timeコマンド
- /time setにspan class="command-highlight">/time setとmidnightの選択肢が追加された
toggledownfallコマンド
- toggledownfallコマンドは廃止された。
- 代わりにweatherコマンドを使おう
tpコマンド
- tpコマンドはteleportコマンドのエイリアスになった。
- エイリアスとは、tellコマンドに対するwコマンドやmsgコマンドのこと。機能が同じだけどコマンド名を色々用意してあるよということ。
- tpコマンドの構文はそのまま残されるが、挙動はteleportコマンドと同じになる。つまりtpコマンドでも、テレポートするエンティティではなく、コマンド実行者を基準に座標を設定するようになる。
- バージョン1.13で、コマンドブロックから/tp napoan ~ ~10 ~を実行すると、「その場から10ブロック上」ではなく「実行元のコマンドブロックから10ブロック上」にテレポートする。
- 「その場から」テレポートさせたい場合はexecuteコマンドのpositionedモードを併用しよう
triggerコマンド
- /trigger コマンドで、/trigger <オブジェクト> add 1 の代わりに /trigger <オブジェクト> と書けば、add 1を書かなくてもスコアを1だけ増やしてくれるようになった
- triggerコマンドは、スコアボードの値を変更する権限がないプレイヤーに1度だけスコアを変更させるコマンド。詳しい使い方はこちらで解説している
weatherコマンド
- これまでweatherコマンドの末尾に時間を書かない場合はランダムな長さで天候が変更されていたが、これからは「5分間」に固定される