17w45a
跳转到导航
跳转到搜索
17w45a是Java版1.13的第3个快照,发布于2017年11月8日[1],修复了一些漏洞。
新内容[编辑 | 编辑源代码]
命令格式[编辑 | 编辑源代码]
- 常规
- 聊天中的命令界面,输入命令时出现。
- 命令的各种部分以不同颜色呈现。
- 无需运行命令就会以红色呈现错误。
- 目标选择器中的新
nbt
参数。 - 新的命令解析库名为Brigadier(准将)。
更改[编辑 | 编辑源代码]
生物[编辑 | 编辑源代码]
- 修改成风格更相似于其他生物的模型。
命令格式[编辑 | 编辑源代码]
- 常规
- 更快更高效的命令与函数系统。
- 大部分命令现在对大小写敏感。可能的话小写是最好的。
- 举例来说,这是不再被允许的:
/scoreboard ObJeCtIvEs ...
。
- 举例来说,这是不再被允许的:
- 命令方块的信号输出原本是其“成功统计”,现在是“结果”。
- 移除了
/advancement test
的用法,以应对实体选择器的修改。
/clear
的语法被修改了。
/clone
的语法被修改了。
- 现在只接受字符串ID,缩写与数字不再接受。
/gamemode 2
改为/gamemode adventure
。/defaultgamemode sp
改为/defaultgamemode spectator
。
/difficulty [<value>]
现在只接受字符串ID,缩写与数字不再接受。/difficulty 2
会改为/difficulty normal
。/difficulty p
会改为/difficulty peaceful
。
- 现在可以用
/difficulty
不带其他参数查询难度。
- 已移除,并计划用
/modifyitem
替代。
/execute
的语法被拆分。- 修饰子命令会改变命令的执行方式:
/execute as <目标实体> <命令连锁>
以<目标实体>
执行命令(不改变执行位置)。/execute at <目标实体> <命令连锁>
以<目标实体>
的位置来执行命令(不改变执行者)。/execute offset <目标位置> <命令连锁>
从<目标位置>
的位置来执行命令。/execute align <回归轴> <命令连锁>
执行命令时会先把执行位置依照回归轴转换为方块位置(向下取整),<回归轴>
的写法就是x
、y
和z
的任意组合(例子:x
、xz
、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 <指定实体> <命令连锁>
如果<指定实体>
至少存在一个(不存在)就执行命令。/execute (if|unless) score <指定目标> <指定判据> ( < | <= | = | >= | > ) <对照目标> <对照判据> <命令连锁>
如果<指定目标>
的分数与<对照目标>
的分数符合(不符合)指定的不等号就执行命令。
- 作为
/stats
的替代,新的store
子命令允许将命令结果储存于某处:/execute store (result|success) score <目标名称> <目标判据> <命令连锁>
result
将会选择命令的结果来输出,用于取代过去的这些统计:AffectedBlocks
AffectedEntities
AffectedItems
QueryResult
。success
将会记录这个命令到底执行的成功次数为何。虽然这数值通常会是0
或1
但是一旦命令被分开执行(像是as @a
)则其成功数也就大于1
了。这取代了SuccessCount
。- 回传值会被储存在
<目标名称>
的<目标判据>
里。 目标判据
必须存在,但相对于/stats
,无需为<目标名称>
设定起始值。- 回传值会在整个命令被完整执行后回传。
- 如果命令没有成功(像
success
是0
时),result
也会被设为0
。 - 以上将会让你对于这命令如何运作更加清晰。
- 可以将所有子命令串连在一起。
- 用法:将一个子命令直接连接到下一个子命令。
- 完成命令连锁之后,写上
run
来继续写下需要执行的原本命令。- 无需为该命令起始添加
/
。
- 无需为该命令起始添加
- 示例:
/execute as somebody at somebody run say hi
- 旧命令转换式示例:
- 修饰子命令会改变命令的执行方式:
/xp
现在为/experience
的简写。- 拆分为3个不同的子命令。
/experience add <玩家> <数量> [points|levels]
- 为目标
<玩家>
添加<数量>
点或级经验(默认为点)。 - 与以前一样,添加点数也能让玩家升级。
- 负值可接受,会减去经验值。
- 扣除经验值也能使玩家降级。
- 为目标
/experience set <玩家> <数量> [points|levels]
- 将目标
<玩家>
的经验设为<数量>
点或级(默认为点)。 - 无法设定超出本级上限的经验数量。
- 等级变动时,经验点数会维持同样的比例。
- 将目标
/experience query <玩家> (points|levels)
- 返回目标
<玩家>
的经验点或级数。
- 返回目标
/fill
/fill
的语法被修改了。
/function
不再接受[if|unless] <实体>
变量。
/give
/give
的语法已修改。
/kill
<目标>
现为必要项。
- Y坐标现在返回
64
,而非?
。 - 命令的
result
,由/execute store
采用时会取与结构的绝对距离。
<额外参数>
变量已移除,粒子的blockcrack
等参数可以直接在<名称>
后的新变量方块处指定。- 例如,
/particle blockcrack stone [variant=smooth_granite] ~ ~ ~ 0 0 0 0 1
。
- 例如,
/replaceitem
的语法已修改。/replaceitem block <x y z> <槽位> <物品> [<数量>] [<数据>] [<nbt>]
会改为/replaceitem block <x y z> <槽位> <物品> [<数量>]
。/replaceitem entity <目标> <槽位> <物品> [<数量>] [<数据>] [<nbt>]
会改为/replaceitem entity <目标> <槽位> <物品> [<数量>]
。- 详请参阅下方的物品参数段落。
[<数据>]
已被移除,为扁平化做铺垫,物品数据将不复存在而物品损害值将被整合入NBT。
槽位
变量不再需要slot.
前缀。- 例如,
slot.hotbar.1
会改为hotbar.1
。
- 例如,
/scoreboard
中带有的[<NBT标签>]
将被移除,以对应实体选择器中的nbt
。/scoreboard players tag
与/scoreboard teams
已移除。分别被/tag
与/team
替代。/scoreboard players test
已移除,以对应/execute (if|unless) score
、实体选择器以及/scoreboard players get <target> <objective>
。
/setblock
的语法已修改。
*
可以作为source
来停止特定名称的所有声音,无论来源。
/tag
- 替代
/scoreboard players tag
。 - 语法保持不变。
/team
- 替代
/scoreboard teams
。 - 语法保持不变。
- 已移除,整合入
/execute
。
- 已移除,整合入
/weather
。
- 若未指定时间,则默认为5分钟(本为随机值)。
- 变量类型
- 引入更多错误处理机制。
- 诸如
limit=0
、level=-10
、gamemode=purple
等不再允许。
- 诸如
- 支持范围指定,取代“min”或“max”的单独值。
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
、distance
、x_rotation
、y_rotation
现在为双精度浮点,支持类似12.34
的值。x
与z
不再向方块中心修正。- 这意味着
x=0
与x=0.5
不再等价。
- 这意味着
gamemode
(前称m
)不再接受缩写或数字。limit
(前称c
)不再接受负值。- 改为
sort=furthest
。
- 改为
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
类同上述)。
- 在
<方块>
,曾都出现[<数据>]
以及[<nbt>]
作可选项,现改为单个<方块>
变量,即:stone
;minecraft:redstone_wire[power=15,north=up,south=side]
;minecraft:jukebox{RecordItem:{...}}
;minecraft:furnace[facing=north]{BurnTime:200}
。
- 方块名称为必要的,若命名空间未设定则取默认的
minecraft:
)。 - 状态写在方括号(
[]
)内,用逗号分隔属性与值必须对方块有效。可选项。minecraft:stone[doesntexist=purpleberry]
有语法错误,因为stone
没有doesntexist
。minecraft:redstone_wire[power=tuesday]
有语法错误,因为redstone_wire
的power
是0-15间的数。
- NBT标签写在花括号(
{}
)内,与普通用法无区别。可选项。 - 在检测方块或“条件”时,仅检测指定的方块状态。
- 若欲测试
redstone_wire[power=15]
,仅测试power值而忽视其他状态,比如north
。
- 若欲测试
- 在设定方块值时,仅设定指定的所有状态,其余皆根据方块情况保持默认。
- 若欲设定
redstone_wire[power=15]
,会将power
设为15,而north
会为默认值(此处为none
)。
- 若欲设定
- 在1.13中不再有方块数据值。这些若非不同方块即是一种状态。
- 在
<物品>
出现的地方,曾都出现[<数据>]
以及[<nbt>]
作可选项,现改为单个<物品>
变量,即:stone
;minecraft:stick{display:{Name:"Stick of Untruths"}}
。
- 物品名称为必要的,若命名空间未设定则取默认的
minecraft:
。 - NBT标签写在花括号(
{}
)内,与普通用法无区别。可选项。- 任何其他信息若非另外的物品即是NBT中的一项属性。
修复[编辑 | 编辑源代码]
- 修复了36个漏洞
- 1.13前正式版的漏洞
- MC-32972 —
/summon
命令会接受本应被忽略的参数。 - MC-59511 — 使用
/tellraw
命令时,当要显示的关键确定文本(Key determining text)缺失时,返回的错误信息不完整。 - MC-69042 —
/summon
命令中坐标的语法应该不一样。 - MC-80856 — 命令语法不一致。
- MC-80893 — 当发送者(Sender)并不是离指定的x/y/z原点最近的实体时,发送者偏差(c=1)会被应用。
- MC-80928 — 玩家骑乘骷髅马、僵尸马、驴和骡时,坐的位置过前。
- MC-85394 — 生成
speed
大于100的“暴击”粒子时,游戏会发生严重卡顿。 - MC-87365 —
/scoreboard player tag
命令的语法不正确。 - MC-87559 — 游戏规则缺失受影响游戏规则的指示器。
- MC-91459 — 在Y=256上时,
/setblock
命令执行返回的信息与其他在世界外使用此命令的信息不一致/执行高度高于256的/setblock
命令,显示的错误信息是“最大建筑高度为256”。 - MC-101113 —
/playsound
命令未正确验证参数。 - MC-101135 — 使用数字过高的相对坐标时,产生了令人无法理解的错误信息。
- MC-102682 — 马蹄铁和马腿分开。
- MC-115957 — 进度、战利品表、资源包和世界文件夹不要求小写。
- MC-116045 —
/banlist
命令会把所有非IP的参数当成玩家来处理。 - MC-118308 — 在某些文本框中输入文字时,会切换复述功能。
- MC-118565 — 只能选择到一个实体的含有四个负号的选择器会被解析为UUID,导致命令执行失败。
- MC-119142 — 不能在一个选择器中使用多个标签。
- MC-121281 — 不能使用鼠标操作创造模式物品栏和服务器菜单中的滚动条。
- MC-128561 —
CommandBase.commandListener
保留了旧的服务器引用,阻止了垃圾回收。
- 1.13开发版本的漏洞
- MC-121283 — 缺失水下迷雾和熔岩迷雾。
- MC-121284 — 打开资源包文件夹和世界文件夹的按钮不能正常工作。
- MC-121288 — 电影视角不能正常工作。
- MC-121302 — “直接连接”按钮会在错误的时候被启用或被禁用。
- MC-121314 — 视频设置中的全屏分辨率文本不适合按钮大小。
- MC-121328 — GUI大小不正确。
- MC-121329 — 按聊天键不再能选中创造模式物品栏或配方书中的搜索栏。
- MC-121334 — 在创造模式物品栏搜索选项卡中使用1-9数字键时,会发送额外的按键事件到搜索栏中。
- MC-121396 — WASD键的顺序很奇怪。
- MC-121418 — 尝试粘贴含有非字符串的剪贴板内容时崩溃。
- MC-121419 — 聊天栏中的点击和悬浮事件有偏移。
- MC-121421 — 在创建世界界面中的名称或种子文本框内按↵ Enter键不能再直接创建世界。
- MC-121456 — 从窗口模式切到全屏模式时,区块会消失。
- MC-121468 — 统计信息不再能通过点击图标排序。
- 上个开发版本的漏洞
参考[编辑 | 编辑源代码]
- ↑ "Minecraft Snapshot 17w45a" – Minecraft.net,2017年11月8日