Minecraft 1.21.4中Skript玩家封禁代码报错排查
Minecraft 1.21.4 Skript封禁代码错误分析与修正
原代码存在的错误
- 事件声明语法错误:
on join缺少冒号,且标准写法应为on player join:(部分Skript版本支持on join:,但必须带冒号开启代码块) - 变量格式错误:
{ban.&player&}中变量占位符需用百分号包裹,正确格式是{ban.%player%},&不是Skript的变量占位符符号 - 命令定义语法错误:
command ban player:格式错误,需明确命令名与参数类型,正确写法为command /ban <player>:- 命令主体缺失关键逻辑:封禁玩家后未将其标记到变量中,导致玩家重新加入时无法检测到封禁状态
- 封禁指令语法错误:
ban arg-1 for 10 years for "banned"中理由参数应使用reason "banned"而非第二个for
修正后的完整代码
# 玩家加入时检测封禁状态 on player join: if {ban.%player%} is true: ban player for 10 years reason "banned" # 封禁玩家命令 command /ban <player>: permission: minecraft.ban.player trigger: ban arg-1 for 10 years reason "banned" set {ban.%arg-1%} to true send "&c已封禁玩家 %arg-1%!" to command sender
补充说明
- 变量
{ban.%player%}会持久化存储玩家的封禁状态,只要服务器数据不删除,玩家重新加入时就会触发检测 - 添加了权限判断
permission: minecraft.ban.player,确保只有有权限的玩家才能执行封禁命令 - 增加了命令执行者的反馈消息,提升操作体验
内容的提问来源于stack exchange,提问作者user32091363
相关产品推荐
相关产品推荐

