feat: Add configurable MaxChatMessageLength for older protocol versions

This commit is contained in:
Anon 2026-03-24 20:18:02 +01:00 committed by GitHub
commit 4d851b6339
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 32 additions and 4 deletions

View file

@ -696,7 +696,8 @@ namespace MinecraftClient.Protocol.Handlers
public int GetMaxChatMessageLength()
{
return 100;
int configOverride = Settings.MainConfigHelper.Config.Advanced.MaxChatMessageLength;
return configOverride > 0 ? configOverride : 100;
}
public int GetProtocolVersion()

View file

@ -3636,9 +3636,13 @@ namespace MinecraftClient.Protocol.Handlers
/// Get max length for chat messages
/// </summary>
/// <returns>Max length, in characters</returns>
public int GetMaxChatMessageLength() => protocolVersion > MC_1_10_Version
? 256
: 100;
public int GetMaxChatMessageLength()
{
int configOverride = Settings.MainConfigHelper.Config.Advanced.MaxChatMessageLength;
if (configOverride > 0)
return configOverride;
return protocolVersion > MC_1_10_Version ? 256 : 100;
}
/// <summary>
/// Get the current protocol version.

View file

@ -1703,6 +1703,15 @@ namespace MinecraftClient {
}
}
/// <summary>
/// Looks up a localized string similar to Override the maximum chat message length. Set to 0 to use the default (100 for 1.10 and below, 256 for 1.11+). WARNING: Setting this incorrectly may cause you to be kicked from the server..
/// </summary>
internal static string Main_Advanced_max_chat_message_length {
get {
return ResourceManager.GetString("Main.Advanced.max_chat_message_length", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Enable support for joining Minecraft Realms worlds..
/// </summary>

View file

@ -655,6 +655,9 @@ Usage examples: "/tell &lt;mybot&gt; reco Player2", "/connect &lt;serverip&gt; P
<data name="Main.Advanced.message_cooldown" xml:space="preserve">
<value>Controls the minimum interval (in seconds) between sending each message to the server.</value>
</data>
<data name="Main.Advanced.max_chat_message_length" xml:space="preserve">
<value>Override the maximum chat message length. Set to 0 to use the default (100 for 1.10 and below, 256 for 1.11+). WARNING: Setting this incorrectly may cause you to be kicked from the server.</value>
</data>
<data name="Main.Advanced.minecraft_realms" xml:space="preserve">
<value>Enable support for joining Minecraft Realms worlds.</value>
</data>

View file

@ -422,6 +422,14 @@ namespace MinecraftClient
if (Advanced.MessageCooldown < 0)
Advanced.MessageCooldown = 0;
if (Advanced.MaxChatMessageLength < 0)
Advanced.MaxChatMessageLength = 0;
else if (Advanced.MaxChatMessageLength > 32767)
Advanced.MaxChatMessageLength = 32767;
if (Advanced.MaxChatMessageLength > 0)
ConsoleIO.WriteLineFormatted("§e[Settings] MaxChatMessageLength is set to " + Advanced.MaxChatMessageLength + ". Setting this incorrectly may cause you to be kicked from the server.");
if (Advanced.TcpTimeout < 1)
Advanced.TcpTimeout = 1;
@ -529,6 +537,9 @@ namespace MinecraftClient
[TomlInlineComment("$Main.Advanced.message_cooldown$")]
public double MessageCooldown = 1.0;
[TomlInlineComment("$Main.Advanced.max_chat_message_length$")]
public int MaxChatMessageLength = 0;
[TomlInlineComment("$Main.Advanced.bot_owners$")]
public List<string> BotOwners = new() { "Player1", "Player2" };