Let Me Click And Send

Let Me Click And Send

一个简单的Minecraft客户端模组,它撤销了1.19.1-rc1中引入的`run_command`点击事件限制,使得非命令消息可以再次通过`run_command`点击事件自由发送

工具

一个简单的 Minecraft 客户端模组,用于撤销 1.19.1-rc1 中引入的 run_command 点击事件限制,使非命令消息可以再次通过 run_command 点击事件作为聊天消息自由发送。

如果你想要一个无需用户感知的解决方案,这里有一个仅服务端模组,实现相同功能: LetMeClickAndSendForServer

模组 端 优点 缺点
LetMeClickAndSend 客户端 与 mc1.19.1 之前的行为完全一致 需要安装在所有玩家的客户端上
LetMeClickAndSendForServer 服务端 无需安装在客户端上 将最大聊天消息长度减少 7 个字符

示例

让我们运行以下命令,然后点击显示的文字

# Minecraft [1.7, 1.21.5)
/tellraw @a {"text":"click me to send \"hi\"","clickEvent":{"action":"run_command","value":"hi"}}

在原版 1.19.1 ~ 1.21.4 中,点击后,你无法发送任何消息,因为 hi 不是有效命令(不以 / 开头)

使用此模组后,点击后,你将自动向服务器发送一条 hi 聊天消息,这与之前 Minecraft 版本的行为一致

MC 1.21.5+

自 MC 1.21.5 起,run_command 行为发生了很大变化

首先是命令语法上的变化,影响较小:

# Minecraft [1.21.5, ~)
/tellraw @a {"text":"click me to send \"hi\"","click_event":{"action":"run_command","command":"hi"}}

其次是行为上的变化,影响较大:

  • command 值始终有效,无论是否以 / 开头
  • 客户端会从 command 值中去除 / 前缀,并将剩余字符串作为命令发送

不再可能正确区分“用于发送聊天消息的 run_command”和“用于发送命令的 run_command”

作为变通方案,适用于 MC >= 1.21.5 的 LetMeClickAndSend 将仅允许特定命令绕过原版检查,并始终可点击发送。 默认情况下,仅允许以 !! 开头的 command 值,这是 MCDReforged 插件生态系统中常用的命令前缀

添加了一个位于 ./config/letmeclickandsend/config.json 的配置文件,用于自定义绕过行为

{
    "sendChatPattern": "!!.*"
}

sendChatPattern 应为有效的正则表达式模式。所有完全匹配该模式的 command 值将作为聊天消息发送

要使用默认配置进行测试,你可以使用:

/tellraw @a {"text":"click me to send \"!!MCDR\"","click_event":{"action":"run_command","command":"!!MCDR"}}

要求

这是一个仅客户端模组。无需额外依赖。

要求:

  • Minecraft >= 1.19.1