1.13是下一個即將到來的重大更新,尚未確定發布日期。此版本將注重漏洞修復、技術性特性和優化。
新內容
常規
選項
FS(全屏)分辨率
用于更改分辨率。
數據包
類似于資源包,但是用于放置戰利品表、進度、函數等
可以從游戲至服務端進行更改
用于把它們放置在世界內會服務器文件內,也可以使用多個數據包或者一個也不用
數據包為.zip文件,或者是一個根目錄有pack.mcmeta文件的文件夾。詳見:教程/制作資源包#pack.mcmeta。這些數據包位于(world)/datapacks/。
在檢查數據包前,結構會從(世界名)/generated/structures/(名字空間)/(文件名).nbt處加載
然而,此目錄不應該用于發布結構,但可通過把這些文件移入數據包實現。
可通過/reload重新加載
結構:pack.mcmeta、包含一個確定其內容的命名空間子文件夾的data文件夾
一個命名空間只能包含以下字符:0123456789abcdefghijklmnopqrstuvwxyz-_
在命名空間文件夾內,可以有functions、loot_tables、structures和advancements的子文件夾。
命令
常規
聊天中的命令界面,輸入命令時出現。
命令的各種部分以不同顏色呈現。
無需運行命令就會以紅色呈現錯誤。
目標選擇器中的新nbt參數。
新的命令解析庫名為Brigadier(旅長)。
具體命令/data
一條允許玩家獲得、合并和移除實體和方塊NBT數據的命令。
/data get block <目標位置> [<標簽路徑>] [<規模>]。
將會返回<目標位置>方塊的nbt數據作為其result(如果標簽路徑被制定)。標簽路徑能用于輸出某個特定的nbt數據,但此功能仍然被限定于數字形式的標簽。可選的規模可以用于指定輸出值的規模。
/data get entity <目標實體> [<標簽路徑>] [<規模>]。
將會從目標實體回傳NBT數據。作為其result(如果標簽路徑被制定)。標簽路徑能用于輸出某個特定的nbt數據,但此功能仍然被限定于數字形式的標簽。可選的規模可以用于指定輸出值的規模。
/data merge block <目標位置>
將會合并目標位置與你所設定的nbt標簽。
/data merge entity <目標實體>
將會合并目標位置與你所設定的nbt標簽。合并玩家的nbt標簽是不允許的。
/data remove block <目標位置> <標簽路徑>。
將會移除目標位置在標簽路徑的nbt數據。
/data remove entity
將會移除目標實體在標簽路徑的nbt數據。移除玩家nbt數據是不允許的。
標簽路徑看起來類似:foo.bar[0]."一個[瘋狂的名字]".baz
foo.bar是指定foo的子標簽bar。
bar[0]表示指定foo的元素0。
"引用字串"在字串需要被回傳時可以使用。
舊命令轉換示例:
/entitydata <目標實體> {} 變成/data get entity <目標實體>
/blockdata <目標位置> 變成/data merge block <目標位置>
新功能使用示例:
/data get entity @e[type=pig,limit=1] Saddle 2
/data remove block 17 45 34 Items
/datapack
用來控制數據包的加載。
以下時子命令:
enable - 啟用特定數據包
disable - 禁用特定數據包
list [available|enabled] - 列出所有數據包,或可用/啟用的數據包
數據包默認啟用,但如果你禁用后可以用以下命令啟用:
enable - 啟用特定數據包,并將其放到默認位置
enable first -啟用特定數據包,并將其放到其他包之前(優先級最低)
enable last - 啟用特定數據包,并將其放到其他包之后(優先級最高)
enable before <名字> - 啟用特定數據包,并將其放到(優先級更低的)<名字>包之前
enable after <名字> - 啟用特定數據包,并將其放到(優先級更高的)<名字>包之后
更改
常規
游戲庫更新
更新至LWJGL 3
現在加載或創建世界顯示加載階段的百分比。
淮備生成區域現在顯示為加載階段。
生物
馬
模型被修改得與其他生物一致
吃草時張嘴等動畫從模型中移除。
命令
常規
命令和函數變得更快、效率更高了。
大多是命令現在更在意大小寫了。小寫是一直可用的。
比如不再允許此命令:/scoreboard ObJeCtIvEs ...
命令方塊的輸出信號原本是“成功的次數”,現在是其“結果”。
具體命令
/advancement
移除/advancement test來為實體選擇器讓道。
/clear
/clear語法被修改了。
/clear <目標玩家> [物品名稱] [數據值] [數量] [數據標簽]簡化為/clear <目標玩家> [目標物品] [數量]
參閱下方的物品參數類型以獲取更多細節。
/clone
/clone的語法被修改了
{{cmd|clone <第一框選點> <第二框選點> <目標區域> filtered [force{{!}}move{{!}}normal] [方塊] [數據]}}修改為{{cmd|clone <第一框選點> <第二框選點> <目標區域> filtered [方塊] [force{{!}}move{{!}}normal]}}
{{cmd|clone <第一框選點> <第二框選點> <目標區域> [replace{{!}}masked] [force{{!}}move{{!}}normal] [方塊] [數據]}}修改為{{cmd|clone <第一框選點> <第二框選點> <目標區域> [replace{{!}}masked] [force{{!}}move{{!}}normal]}}
/defaultgamemode與/gamemode
現在只接受字符串ID,不再接受縮寫或數字
/gamemode 2修改為/gamemode adventure
/defaultgamemode sp修改為/defaultgamemode spectator
/difficulty
/difficulty [<值>]現在只接受字符串ID,不再接受縮寫或數字
/difficulty 2修改為/difficulty normal
/difficulty p修改為/difficulty peaceful
現在可以不帶任何參數使用/difficulty來切換難度。
/effect
/effect的語法被拆分,以避免歧義
/effect <目標實體> <狀態效果>修改為/effect give <目標實體> <狀態效果>
/effect <目標實體> clear修改為/effect clear <目標實體> [狀態效果]
如果命令沒有任何作用,給予效果會失敗。
比如一些怪物(像末影龍)的免疫。
原本更高等級的效果會使新的低等級效果無效。
/enchant
移除來為/modifyitem讓道。
/entitydata
移除來為/data讓道。
/execute
/execute的語法被拆分。
修飾子命令會改變命令的執行方式:
/execute as <目標實體> <連鎖命令>以<目標實體>執行命令(不改變位置)。
/execute at <目標實體> <連鎖命令>以<目標實體>的位置來執行命令(不改變實體)。
/execute offset <目標位置> <連鎖命令>從<目標位置>的位置來執行命令。
/execute align <回歸軸> <連鎖命令>執行命令時會先把執行位置依照回歸軸轉換為方塊位置 (四舍五入),<回歸軸>的寫法就是x、y、z的任意組合(例子:x,xz、code>zyx和yz)。
使用示例:
當x=-1.8,y=2.3,z=5.9使用x將變為x=-2,y=2.3,z=5.9
當x=2.4,y=-1.1,z=3.8使用yxz將變為x=2,y=-2,z=3
條件子命令可以讓你避免在特定情況運行命令:
/execute (if|unless) block <指定位置> <指定方塊> <連鎖命令>如果(除非)<指定位置>與<指定方塊>相符時執行命令。
/execute (if|unless) blocks <第一框選點> <第二框選點> <對照區域> (all|masked) <連鎖命令>如果(除非)<第一框選點>和<第二框選點>之間的區域與<對照區域>相符時執行命令。
/execute (if|unless) entity <指定實體> <連鎖命令>如果(除非)<指定實體>存在(1個或以上)時執行命令。
/execute (if|unless) score <指定目標> <指定判據> (<<==>=>) <對照目標> <對照判據> <連鎖命令>如果(除非))<指定目標>的分數與<對照目標>的分數符合指定的不等號時執行命令。
作為/stats的替代,新的store子命令將允許你將命令結果儲存于某處:
result將會選擇命令的結果來輸出,用于取代過去的這些統計:AffectedBlocks、AffectedEntities、AffectedItems、QueryResult。
success將會記錄這個命令到底執行的成功次數為何。雖然此數值通常會是0或1, 但是如果此命令被分開執行(像是as @a)那么其成功數也就大于1了。這取代了SuccessCount。
回傳值會儲存,并在整個命令被完整執行后返回。
如果指命令沒有成功(像success是0時),result也會被設為0。
會讓你對于這命令如何運作更加清晰。
/execute store (result|success) score <目標名稱> <目標判據> <連鎖命令>
返回值會被儲存在<目標名稱>和<目標判據>里。
目標判據必須存在,但相對于/stats你不需要為<目標名稱>設定起始值
/execute store (result|success) block <目標位置> <標簽路徑> (byte|double|float|int|long|short) <連鎖命令>
將回傳值儲存在目標位置方塊標簽路徑的nbt標簽上,并儲存為byte、double、float、int、long或short
/execute store (result|success) entity <目標實體> <標簽路徑> (byte|double|float|int|long|short) <連鎖命令>
將回傳值儲存在目標實體標簽路徑的nbt標簽上,并儲存為byte、double、float、int、long、或short
標簽路徑看起來類似:foo.bar[0]."一個[瘋狂的名字]".baz
foo.bar是指定foo的子標簽bar。
bar[0]表示指定foo的元素0。
"引用字串"在字串需要被回傳時可以使用。
例子:
/execute store success score @a foo run say hi
//execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5]
你可以將所有子命令串連在一起。
要這么做時,你必須將一個子命令直接連接到下一個子命令。
最后當你完成連鎖命令,寫上run來使你繼續寫下你想要執行的原本命令。
/不再允許寫進命令前面。
/execute as somebody at somebody run say hi
舊命令轉換式示例:
/execute @e ~ ~ ~ detect ~ ~ ~ stone 0 say Stone!變成/execute as @e at @s if block ~ ~ ~ stone run say Stone!
/execute @e ~ ~ ~ detect ~ ~ ~ grass 0 summon pig變成/execute at @e if block ~ ~ ~ grass run summon pig
/execute @e ~ ~ ~ say Hello!變成/execute as @e run say Hello!
/experience
/xp現在從屬于/experience。
拆分為以下3個子命令:
/experience add <目標玩家> <數量> [points|levels]
為<目標玩家>增加<數量>點數或等級(默認值為點數)。
增加經驗點數一樣可以使你提升等級,和原來一樣。
現在<數量>支持負數,使你減去一定數量的點數。
減去點數可以使你等級下降。
/experience set <目標玩家> <數量> [points|levels]。
為<目標玩家>設定<數量>點數或等級(默認值為點數)。
你不能夠設置超過該等級限制的點數上限。
當等級變動時,點數會維持同樣的比例。
/experience query <目標玩家> (points|levels)
回傳<目標玩家>的點數或等級。
/fill
/fill語法被修改了
{{cmd|fill <第一框選點> <第二框選點> <方塊> <數據> replace [替代方塊] [替代方塊數據]}}變成{{cmd|fill <第一框選點> <第二框選點> <目標方塊> replace [方塊]}}
{{cmd|fill <第一框選點> <第二框選點> <方塊> [數據] [destroy{{!}}hollow{{!}}keep{{!}}outline{{!}}replace] [數據標簽]}}變成{{cmd|/fill <第一框選點> <第二框選點> <方塊> [destroy{{!}}hollow{{!}}keep{{!}}outline{{!}}replace]}}
/function
/function不再包含 <指定實體>參數
已經被整合至/execute
/function foo if @e將變為/execute if entity @e function foo
/gamerule
/gamerule不再允許未知的游戲規則(“自定義游戲規則”)
你可以使用函數或記分板作為替代,而不會失去原有效果。
先前存在的自定義規則也無法使用,只能使用原始的游戲規則。
/gamerule現在將會檢查對應的數據形態 (對int給予字符串是一個明顯的錯誤)。
/give
/give語法被修改了
/give <目標玩家> <目標物品名稱> [數量] [數據值] [數據標簽]將變為/give <目標玩家> <目標物品> [數量]
參閱下方的物品參數類型以獲取更多細節
/kill
目標實體現在是必選的
/locate
y坐標位置現在返回64而非?。
配合/execute store時,運行結果將會改以回傳與目標結構的距離。
/particle
<額**數>現在被移除,取而代之的blockcrack粒子效果可以在他的<粒子名稱>后方使用方塊參數
/particle blockcrack stone[variant=smooth_granite] ~ ~ ~ 0 0 0 0 1
粒子名稱現在被轉換為小寫,且可以加上命名空間
/replaceitem
/replaceitem語法被修改了
/replaceitem block <目標位置> <目標槽位> <目標物品名稱> [數量] [數據值] [數據標簽]將變為/replaceitem block <目標位置> <目標槽位> <目標物品> [數量]
/replaceitem entity <目標實體> <目標槽位> <目標物品名稱> [數量] [數據值] [數據標簽]將變為/replaceitem entity <目標實體> <目標槽位> <目標物品> [數量]
參閱下方的物品參數類型以獲取更多細節。
slot參數不在需要slot.。
比如,slot.hotbar.1變為hotbar.1。
/scoreboard
/scoreboard移除了[<數據標簽>],因為nbt參數在實體選擇器中的取代。
移除了/scoreboard players tag與/scoreboard teams,并且由/tag與/team分別取代。
/scoreboard players test被移除以用以支持/execute (if|unless) score、實體選擇器和/scoreboard players get 。
/setblock
/setblock語法被修改了
/setblock <目標位置> <目標方塊名稱> [數據值] [模式] [數據標簽]將變為/setblock <目標位置> <目標方塊> [模式]
參閱下方的方塊參數類型以獲取更多細節。
/stats
被移除,現在是/execute的一部分
并非用/execute直接替換,而是運行方式的改變:
現在檢測每個命令,而不是每個實體或每個方塊。
只有兩種統計信息:result和success,包含了所有舊的統計類型。
/stopsound
現在可以使用*取代source來停止特定名字的所有音效。
/tag
取代了 /scoreboard players tag
維持原有的語法
/tag <目標玩家> add <目標標簽>用以附加<目標標簽>于<目標玩家>。
/tag <目標玩家> remove <目標標簽>用以移除<目標標簽>從<目標玩家>。
/tag <目標玩家> list用以列出<目標玩家>的所有標簽。
/team
取代了 /scoreboard teams
維持原有的語法
/team add <目標隊伍> [<顯示名稱>]
/team empty <目標隊伍>
/team join <目標隊伍> [<成員>]
/team leave [<成員>]
/team list [<目標隊伍>]
/team option <目標隊伍> <設定選項> <值>
/testfor、/testforblock與/testforblocks
移除,被整合至/execute。
/toggledownfall
移除,它曾經總是用于終止下雨,然后讓你失望的是一會兒后又下起了雨。
以/weather作為替代。
/tp與/teleport
/tp現在是/teleport的別名(和/w、/msg與/tell一樣)
相對位置一律以執行者為主,與其他命令相同
/tp語法仍然存在,但現在與/teleport作用相同
/trigger
新語法/trigger <目標>是作為/trigger <目標> add 1的快捷寫法。
/weather
如果沒有設定持續時間,那么將固定持續5分鐘(原本是隨機設定時間的)
參數類型
目標選擇器
更多錯誤處理
參數可以被引用
不允許limit=0、level=-10和gamemode=purple之類的輸入
不再存在最小值與最大值的分別設定,取而代之地是可以設定范圍
level=10要求等級為10
level=10..12要求等級為10、11或12
level=5..要求等級大于等于5
level=..15要求等級小于等于15
改變名稱以取代難懂的簡寫
m -> gamemode
l與lm -> level
r與rm -> distance
rx與rxm -> x_rotation
ry與rym -> y_rotation
c -> limit
x、y、z、r、rm、dx、dy、dz現在是浮點數了,支持12.34這樣的數值[2]
x和z不再中心修正了
這意味著x=0不再等同于x=0.5
gamemode(原本的m)不再支持數字ID或縮寫了
name參數現在支持空值了(由于一直呼聲很高)
現在在目標選擇器中使用重復的參數
tag=foo,tag=bar,tag=!baz將選擇有foo、bar標簽而沒有baz的目標
type=!cow,type=!chicken將選擇不是牛也不是雞的目標
type=cow,type=chicken是不合法的,因為沒有目標會同時是雞與牛
你可以指定類別。
sort=nearest是原來的默認值,按距離排序(@p的默認值)
sort=furthest則與預設相反(之前你會使用c=-5來達到這點)
sort=random為隨機排序(@r的默認值)
sort=arbitrary為不排(@e和@a的默認值)
指定分數現在是scores={foo=1,bar=1..5}
你可以用advancements={foo=true,bar=false,custom:something={criterion=true來測試進度
true為“已完成進度的”,false為“未完成進度的”
也可以穿過一個特定標準的方塊來測試(也是true或false)
方塊
對于之前<方塊名稱>來說,[數據值]與[數據標簽]曾經是必須的,現在被整合為一個單獨的方塊參數:
stone
minecraft:redstone_wire[power=15,north=up,south=side]
minecraft:jukebox{RecordItem:{...
minecraft:furnace[facing=north]{BurnTime:200}
方塊ID是必需的(就如同過去一樣,如果沒有設定命名空間則將設為預設值:minecraft:)。
方塊狀態位于[],以逗號分隔且必須是方塊支持的狀態,這是可選的
minecraft:stone[doesntexist=purpleberry]有語法錯誤,因為stone沒有doesntexist
minecraft:redstone_wire[power=tuesday]有語法錯誤,因為redstone_wire的power是一個在0和15之間的數字
數據標簽位于{},就與以前一樣,這是可選的
如果方塊參數用于"條件"/檢查方塊,只有你提供的狀態與數據標簽會被檢查
如果檢查redstone_wire[power=15],那它將會檢查power而忽略其他狀態,如north
如果方塊參數用于設置方塊,你所提供的任何狀態與標簽都會被設置,而其他未設置的狀態與標簽會被設為預設值
如果你設置redstone_wire[power=15],那它將設置power到15卻使north設為預設值(在這個狀態下被設置為none)
1.13將不會有數據值,而變為不同的方塊或狀態
物品
對于之前<物品名稱>來說,[數據值]與[數據標簽]曾經是必須的,現在被整合為一個單獨的物品參數:
stone
minecraft:stick{display:{Name:"Stick of Untruths"
物品ID是必需的(就如同過去一般,如果沒有設定命名空間則將設為預設值minecraft:)
數據標簽位于{},就與以前一樣,這是可選的
其他
選項
徹底移除3D效果選項
控制
鍵盤名稱現在描述了實際的鍵(例如“LBUTTON” - >“左按鈕”,“BACKSLASH” - >“\”)
資源包
默認資源包現在能在資源包選擇屏幕里上下移動。
計劃新內容
命令
/modifyitem
代替/enchant。
語法目前尚未確定。
計劃更改
常規
方塊元數據
完全淘汰數值化的方塊元數據來為方塊狀態讓路。
合成
自定義合成配方
原本計劃在1.12中加入
方塊ID
使方塊ID突破上限
函數
函數在加載時會被完全分析和緩存
這意味著如果命令不正確,玩家在加載時就能知道。
“扁平化”
/give、/clear和/replaceitem中的損害值參數將被移除。
損害值將被移動到Damage標簽中,僅被有耐久的物品的tag標簽使用
例如/give @p diamond_sword 1 1將變為/give @p diamond_sword 1 {Damage:1}
許多目前用方塊狀態區分變種、種類、顏色等的方塊將擁有各自的ID(例子:wool color=red將變為red_wool)
移除花盆、頭顱(玩家頭顱除外)和音符盒的方塊實體值
命令
/blockdata
被移除,并被/data取代
/playsound
Tab自動補全功能可以補全自定義的聲音事件
物品
物品數據值、物品損害值,以及其他這樣的東西將不復存在
損害值在用到的地方都被移入nbt。
nbt中每個單獨的物品有一個屬性。