我的世界Java版23w41a发布

23w41a是Java版1.20.3的第2个快照,发布于2023年10月11日,为所有版本加入了Realms支持,加入了饰纹陶罐的新功能,重新加入了与函数有关的命令,改进了命令执行限制有关机制,并修复了一些漏洞。


新内容

常规

粒子
  • 加入了dust_plume粒子。

更改

方块

饰纹陶罐
  • 现在可在其中放置最多一叠的同类物品。
    • 现在漏斗、漏斗矿车和投掷器可以向饰纹陶罐中放置物品,和/或从其中去除物品。
    • 红石比较器现在可检测其中放置的物品数量。
    • 玩家现在可以与之交互,并可以在其中放置物品。
      • 玩家的交互动作会使它们wobble,并且发出频率为11的振动。
    • 没有对应界面,其中的物品需要玩家将其破坏后才能取出。
  • 现在饰纹陶罐可被弹射物击毁,使其碎裂并掉落其所有内容物。
  • 现在可以堆叠至64个。
  • 方块状态cracked为true时,无论用何种方式破坏,饰纹陶罐都会碎裂。

非生物实体

常规
  • 现在所有无生命的实体,其名称都会在被玩家观察且CustomNameNBT标签被设置时显示,或在CustomNameVisibleNBT标签被设置时一直显示,与所有有生命的实体类似。

命令格式

函数
  • 更改了/function命令,以更好适应新的/return命令。
  • 现在,任何函数只在其使用了/return命令,或在其查询或实例化过程中出错时有返回值。故/function命令现在不再返回(甚至显示)命令执行期间的命令执行数。
    • 会导致执行错误的情况如下:
      • 调用不存在的函数。
      • 调用空的函数标签。
      • 宏的实例化失败。
  • 本段中的“结果”一词指可被/execute store命令存储的值。
  • 取消了使用/execute store ... run 函数名命令执行函数时,函数中所有命令都会被执行存储操作的命令行为。
    • 这表示对函数名的单次调用最多只会存储一次结果(如果函数内部没有调用/return命令则为0次)。
    • 对于具有多个条目的函数标签,函数结果将被累加,但部分结果将在每个函数的末尾处被存储。
  • 改进了函数现有的限制条件,以更好适应新的执行规则,并且避免更广泛的漏洞利用:
    • 现在即便是从命令行执行的命令也会受到限制,与放置在函数中的命令表现一致。
      • 例如,所有由/execute as @e run 函数名调用的函数都会计入相同的限制中。
      • 命令方块所产生的命令执行仍独立计算。
    • 现在,游戏规则maxCommandChainLength在限制函数执行时会将下列情形计入“操作数”:
      • 单命令执行上下文的命令执行。
      • /execute命令中一个阶段的命令执行(无论其中有多少令执行上下文被修改过)。
      • 函数调用。
    • 加入了新的游戏规则maxCommandForkCount,用于限制如/execute的单状态函数所能创建的命令执行上下文的总量。
      • 例如:如有5个实体,执行/execute as @e命令会创建5个命令执行上下文,而/execute as @e at @e则会创建25个(5×5)。
/execute
  • 重新加入了(if|unless) function条件子命令。
    • 用于执行一个函数或函数标签,并检查其返回值是否满足条件。若指定的是函数标签,无论结果如何,标签内靠前的函数都会被执行。
    • 语法:... (if|unless) function <function> -> execute
    • 参数:
      • function:要执行的函数或标签。
    • 满足以下条件时,函数才会执行:
      • 必须至少成功执行一个函数才能匹配成功。
      • 函数成功执行必须满足下列条件:
        • 使用/return命令返回值。
        • 返回值不为0。
      • 如果没有任何函数以/return命令退出,ifunless都不会执行。
/return
  • 重新加入了run子命令,语法:/return run ...
    • 此函数用于从所指定的命令中取得返回值,并将其作为其自身返回值返回给函数。
      • 如果指定的命令不返回任何值(如调用一个没使用/return命令的函数),/return命令不会执行,函数会继续执行。
      • 如果指定的命令执行失败,返回值为0
      • 除此之外的其他情况下,此命令的表现与在/return命令中手动指定return值的表现一致。
      • 如遇会产生执行分支的情况(如执行/return run execute as @e run 一些命令命令),最先被执行的命令的返回值会被返回。
        • 如果没有任何命令被实际执行(如执行/return run execute if @e[不可能的条件] run 一些命令命令),函数将不会返回,并继续执行后续命令。

常规

数据包
  • 将数据包版本号更改为20
Realms
  • 现在在所有版本(包括所有非正式版)中可用。
    • 只要有处于活动状态的Realms订阅,任何玩家都可以创建一个免费的快照版Realm。
    • 快照版Realm与普通Realm分开,以避免出现任何问题,从而影响普通Realm。
  • 最近一次进入的世界的版本会在Realm列表中显示。
  • 可在新创建的Realm世界中使用实验性功能。

修复

修复了26个漏洞
1.20前正式版的漏洞
  • MC-16937 — 禁用PvP时,将箭射入下界传送门可以对任何人造成伤害。
  • MC-50319 — 有主箭矢离开传送门时会丢失其所有者信息。
  • MC-81656 — 决定凋灵之首是否为蓝色的字段不会保存到NBT中,也不会从NBT中读取此字段。
  • MC-118403 — 在队伍中的唤魔者召唤出的恼鬼不会加入对应队伍中。
  • MC-143266 — 嵌套的函数调用会在其加入执行队列前重新评估maxCommandChainLength游戏规则的值。
  • MC-143269 — 已生成命令执行队列时,受到maxCommandChainLength游戏规则的影响,函数中的嵌套的中间函数会被跳过。
  • MC-189227 — 教学提示上使用的是旧纹理。
  • MC-198113 — 不完整的命令不会使函数停止加载。
  • MC-233276 — 玩家可以喂食满好感度的驴、马、羊驼或骡,此时手部动画不显示。
  • MC-234323 — 文本解析有性能问题。
  • MC-236341 — 玩家可以给成年驴、马或骡喂食干草捆,但不播放对应的手部动画和动物的进食动画与进食声音。
  • MC-236501 — 被重命名过的矿车和船物品,放置后,此名称不显示在其实体的上方。
  • MC-249408 — 运输船放置后其名字会丢失。
  • MC-257786 — 游戏会花很长时间来处理玩家离开Realms组、接受或拒绝Realms邀请的操作。
  • MC-260576 — 不完整的/execute summon命令仍会执行。
  • MC-262105 — 如果玩家非常靠近一个实体的判定箱时,玩家的刷扫动作会被终止。
1.20的漏洞
  • MC-261682 — 被刷扫的方块超出范围后,刷扫动作会继续进行。
1.20.1的漏洞
  • MC-263575 — 刷扫可疑的沙子或可疑的沙砾,若刷扫过程被半途终止,方块在物品完全缩回前不受重力影响。
  • MC-263660 — 告示牌和悬挂式告示牌的“告示牌:晃动”字幕是一样的,会导致翻译问题。
1.20.2的漏洞
  • MC-264595 — /return命令位于其他函数中时不能执行函数。
  • MC-264699 — 只有命令不以/return run开始时,函数才能返回命令输出。
  • MC-264710 — 从函数中执行的/execute if function命令总是失败,而/execute unless function总是成功。
  • MC-264880 — Programmer Art资源包的GUI滑块使用的是新纹理。
  • MC-265516 — 某些Realms菜单中的“取消”按钮是菜单中的唯一元素,但仍可以通过键盘导航键取消选择。
上个开发版本的漏洞
  • MC-265647 — 乘船时,手臂持盾的位置不正确。
  • MC-265656 — 不再能用剪刀雕刻南瓜。

来源:Minecraft Wiki

已有 0 条评论