/weather 天气控制
设置世界天气为晴天、下雨或雷暴,可指定持续时长并查询当前天气
设置主世界的天气为晴天、下雨或雷暴,并可指定天气持续的时长。基岩版 1.18.30 起,持续时长参数的单位从秒改为游戏刻,旧教程中的秒数值会相差 20 倍;基岩版还独有 /weather query,用于查询当前天气。
原理
天气是存储在世界层面的全局状态,而不是方块或实体身上的属性。服务端为有天气的维度维护几个字段:两个布尔值分别表示「是否正在下雨」和「是否正在打雷」,另有两个以游戏刻为单位的倒计时计数器记录剩余的下雨时长与打雷时长,此外还有一个「晴天倒计时」决定下一场雨何时开始。/weather 命令做的事,就是直接改写这些字段,而不是模拟天气的自然演变过程。
打雷是下雨的子状态:游戏只有在「正在下雨」时才会打雷,因此 /weather thunder 会同时把下雨和打雷两个布尔值都置为真,/weather rain 只开启下雨、关闭打雷,/weather clear 则把两者都关闭。服务端每个游戏刻都会递减这些计数器:晴天倒计时归零时开始下雨,下雨倒计时归零时转晴并重新随机下一段晴天时长,从而形成「晴→雨→晴」的自然循环。你通过命令设置的持续时间只是被直接写入计数器的数值,计时结束后天气会重新交还给自然循环接管。
天气对整个维度生效,主世界里的所有玩家看到的是同一场雨,下界与末地没有天气,雨雪与雷暴只会在主世界出现。玩家睡觉会快进到早晨并把天气重置为晴天,因此任何「永久雨天」都会在有人睡觉后被清掉。雷暴期间生成的闪电只会在已加载区块内寻找目标,击中实体或方块时可能引燃火焰,并把村民变成女巫、把苦力怕变成高压苦力怕、把猪变成僵尸猪灵。天气的自然更替还受世界规则 doWeatherCycle 控制,关闭该规则后天气不再自行变化。
语法
/weather <clear|rain|thunder> [duration: int]
/weather query
参数
<clear|rain|thunder>— 天气类型,必填参数,需在三种取值中三选一,每种取值的含义见下表。[duration: int]— 天气持续时间,可选参数,类型为 32 位整数,单位是游戏刻。写 0 或省略时使用随机默认值(300 到 900 秒,即 6000 到 18000 游戏刻);取值范围为 0 到 1000000(含),负值或超过 1000000 会执行失败。
| 取值 | 天气 | 说明 |
|---|---|---|
clear | 晴天 | 停止下雨与打雷,天空放晴 |
rain | 下雨 | 开始下雨,在寒冷生物群系中表现为降雪 |
thunder | 雷暴 | 同时开启下雨与打雷,伴随闪电,在寒冷生物群系中表现为暴风雪 |
示例
立即放晴:
/weather clear
立即停止当前的下雨或雷暴,天空转为晴天,持续时长取随机默认值(约 5 到 15 分钟),之后天气回归自然循环。
下一场 5 分钟的雨:
/weather rain 6000
将天气设为下雨并持续 6000 游戏刻(300 秒,即 5 分钟),时长用尽后自动转晴。
持续一整天的雷暴:
/weather thunder 24000
开启持续 24000 游戏刻(一个游戏日,约 20 分钟)的雷暴,期间会随机落下闪电,可能引燃方块并转化部分生物。
维持约 13.9 小时晴天:
/weather clear 1000000
把晴天持续时间设为上限 1000000 游戏刻(约 13.9 小时),适合长时间施工或展示场景;想要真正长期保持晴天需配合重复命令方块持续执行。
查询当前天气:
/weather query
在聊天栏中返回当前天气类型(如 clear、rain 或 thunder),这是基岩版独有的子命令,Java 版没有。
基岩版注意
- 需要 OP 等级 1,且在生存模式中通常还需在世界设置里开启作弊或拥有操作员权限。
- 与 Java 版的差异:Java 版
/weather需要 OP 等级 2,持续时间以秒或带单位的时间(如1d、100s)表示;基岩版以游戏刻为单位。 /weather query是基岩版独有,Java 版没有该子命令。- 版本兼容:1.18.30 起,
duration: int参数的单位从秒改为游戏刻;沿用旧版「按秒填数」的教程会让实际时长相差 20 倍。 - 雨雪与雷暴只出现在主世界,下界与末地没有天气。
- 玩家睡觉会把天气立即重置为晴天,任何雨雪或雷暴都会被打断。
- 持续时间上限为 1000000 游戏刻(约 13.9 小时),并非真正永久。
常见问题
为什么我写的时长和实际对不上?
因为 duration: int 的单位是游戏刻而不是秒,1 秒等于 20 游戏刻。想让雨下 5 分钟,应填 6000 而不是 300。1.18.30 之前该参数以秒为单位,如果你参考的是旧版教程,数值需要乘以 20。
为什么我设置好的晴天没过多久又下雨了?
晴天本身也有时长上限。省略 duration: int 时,服务端会随机取 300 到 900 秒作为持续时长;即便填满 1000000 游戏刻,约 13.9 小时后也会到期并回到自然天气循环。此外,只要玩家睡觉,天气就会被重置为晴天,反向的「雨天」同样会被清掉。
雷暴和下雨是什么关系?
打雷是下雨的子状态,游戏只有在正在下雨时才会打雷。因此 /weather thunder 会同时开启下雨和打雷,而 /weather rain 只下雨不打雷,/weather clear 则把两者一起关闭。