Skip to content

Commit 2a0ac8f

Browse files
committed
Add system property to allow longer chat messages on legacy versions
1 parent 1b0a8bf commit 2a0ac8f

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

api/src/main/java/com/github/retrooper/packetevents/wrapper/play/client/WrapperPlayClientChatMessage.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@
3535
* This packet is used to send a chat message to the server.
3636
*/
3737
public class WrapperPlayClientChatMessage extends PacketWrapper<WrapperPlayClientChatMessage> {
38+
private static int getLegacyMaxChatLength() {
39+
final String value = System.getProperty("packetevents.legacyClientChatMaxLength");
40+
if (value != null) {
41+
try {
42+
return Integer.parseInt(value.trim());
43+
} catch (final NumberFormatException e) {
44+
// Exception has been handled
45+
}
46+
}
47+
return 100;
48+
}
49+
3850
private String message;
3951
private MessageSignData messageSignData;
4052
private @Nullable LastSeenMessages.Update lastSeenMessages;
@@ -60,7 +72,7 @@ public WrapperPlayClientChatMessage(String message, MessageSignData messageSignD
6072

6173
@Override
6274
public void read() {
63-
int maxMessageLength = serverVersion.isNewerThanOrEquals(ServerVersion.V_1_11) ? 256 : 100;
75+
int maxMessageLength = serverVersion.isNewerThanOrEquals(ServerVersion.V_1_11) ? 256 : getLegacyMaxChatLength();
6476
this.message = readString(maxMessageLength);
6577
if (serverVersion.isNewerThanOrEquals(ServerVersion.V_1_19)) {
6678
Instant timestamp = readTimestamp();
@@ -81,7 +93,7 @@ public void read() {
8193

8294
@Override
8395
public void write() {
84-
int maxMessageLength = serverVersion.isNewerThanOrEquals(ServerVersion.V_1_11) ? 256 : 100;
96+
int maxMessageLength = serverVersion.isNewerThanOrEquals(ServerVersion.V_1_11) ? 256 : getLegacyMaxChatLength();
8597
writeString(this.message, maxMessageLength);
8698
if (serverVersion.isNewerThanOrEquals(ServerVersion.V_1_19)) {
8799
writeTimestamp(messageSignData.getTimestamp());

0 commit comments

Comments
 (0)