Let Me Click And Send for Server

A simple Minecraft server-side mod, that replaces all non-command `run_command` content with a custom command, to bypass client-side restrictions since 1.19.1-rc1

2,24k

Let Me Click And Send for Server

A simple Minecraft server-side mod, that replaces all non-command `run_command` content with a custom command, to bypass client-side restrictions since 1.19.1-rc1

If you want a more direct solution, here's a client-side only mod that does the same thing: LetMeClickAndSend

| Mod | Side | Advantage | Disadvantage | |-------------------------------------------------------------------------------------------|--------|-------------------------------------------|-----------------------------------------------| | LetMeClickAndSend | client | Exactly the same behavior as pre mc1.19.1 | Needs to be installed on all players' clients | | LetMeClickAndSendForServer | server | No need to install on client | Reduces maximum chat message length by 7 |

Example

Let's run the following command, and then click the shown text

```bash

Minecraft [1.7, 1.21.5)

/tellraw @a {"text":"click me to send "hi"","clickEvent":{"action":"run_command","value":"hi"}} ```

In vanilla 1.19.1 ~ 1.21.4, after clicking, you are not able to say anything since `hi` is not a valid command (not starts with `/`)

With this mod, the server will automatically replace the `value` field in the click event above with `/lmcas hi`, so the client can "send" the message without any issue after the click

On command received, the server will broadcast a message with the same format as a player message, simulating the player saying "hi" in chat

MC 1.21.5+

Since MC 1.21.5, the `run_command` behavior has changed a lot

First is the change in command syntax, which has little impact:

```bash

Minecraft [1.21.5, ~)

/tellraw @a {"text":"click me to send "hi"","click_event":{"action":"run_command","command":"hi"}} ```

Next is the change in behavior, which has a greater impact:

- The `command` value is always valid, regardless of whether it starts with a `/` or not - The client will strip the `/` prefix from the `command` value and send the remaining string as a command

It's no longer possible to correctly distinguish between "a run_command for sending chat message" and "a run_command for sending command"

As a workaround, LetMeClickAndSendForServer for MC >= 1.21.5 will only replace certain `command` with the `/lmcas` command. By default, only `command` value starting with `!!`, which is a commonly-used command prefix in MCDReforged plugin ecosystem, will be replaced

A config file located at `./config/letmeclickandsendforserver/config.json` is added for customizing the replacing behavior

```json { "replacePattern": "!!.*" } ```

The `replacePattern` should be a valid regex pattern. All `command` values that fully match the pattern will be replaced with the `/lmcas` command

To test with the default configuration, you can use:

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

Requirements

It's a server-side only mod. It requires 0 extra dependency

ADS