コマンド初心者の人のために頑張ってわかりやすく?紹介します

まずコマンドの入門は「/give」コマンドがオススメです。

 /give <プレイヤー名> <アイテム名> <個数> [データ値] [データタグ]

プレイヤー名のところにはセレクターを入れます 

セレクター
@p = 一番近くのプレイヤー
@a = 全てのプレイヤー
@r =ランダムにプレイヤー一人
@e =すべてのエンティティ 

エンティティ
ゾンビやスケルトン、額縁や絵画、落ちているアイテムやガストの火の玉など基本的にブロック以外のもの

ダイヤの剣を1つ一番近くのプレイヤーに
/give @p minecraft:diamond_sword 1 0
 
データ値は耐久力または種類の番号を示します

剣や防具などの耐久値のあるアイテムなら
[耐久値] ー [データ値] =[現在の耐久値]
になるので、データ値を100と入力すれば耐久値が100減ったダイヤ剣が渡されます

種類の番号は「F3+H」で表示させることができます


データタグの説明をします

データタグは受け取るアイテムの細かい状態を示します
エンチャントの内容やコマンドでしか付与できない能力など

このデータタグで重要なのが「{ } [ ] :  ,」です
少しでも間違えると実行できなくなります

{ }基本的なカッコ

[ ]コマンドの詳細などに使うカッコ(中に{ }を入れることがあるコマンドに使われる)

: コマンドとそのコマンドの状態を示すものとの間に入れる

,コマンドとコマンドを区切るもの

まずデータタグを入れるための{}

/give @p minecraft:diamond_sword 1 0 {}

この中にコマンドを追加していきます

ench:[{id:<エンチャントID>,lvl:<エンチャントレベル>}]

Unbreakable:0 or 1

HideFlags: 0 ~ 63

など(※他にもたくさんあります) 

エンチャントを1つだけ付与 ダメージ増加レベル3
/give @p minecraft:diamond_sword 1 0 {ench:[{id:16,lvl:3}]} 

2つ目を入れるために「,」で{}と{}を区切ります

/give @p minecraft:diamond_sword 1 0 {ench:[{id:16,lvl:3},{id:19,lvl:2}]}

これで2つのエンチャントが付与されます

ダイヤ剣一つの「/give @p minecraft:diamond_sword 1 0 {}」エンチャント「ench」の中「:[ ]」のダメージ増加レベル3「{id:16,lvl:3}」と「,」ノックバックレベル2「{id:19,lvl:2}」という表現になります 

ここに「Unbreakable:1」というアイテムが壊れなくなるコマンドを追加します
注意:この不可壊のコマンドがエンチャントではないということを意識してください


/give @p minecraft:diamond_sword 1 0 {ench:[{id:16,lvl:3},{id:19,lvl:2}],Unbreakable:1}

エンチャントは}ではなく、]までがエンチャントのコマンドなのでその後ろに,で区切って不可壊のコマンドを入れます


このように{ }と[ ]の違いがわかればエラーの原因がわかってちゃんとしたコマンドが実行できます