mirror of
https://github.com/AtlasMediaGroup/Scissors.git
synced 2024-11-27 07:05:39 +00:00
47 lines
2.4 KiB
Diff
47 lines
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Telesphoreo <me@telesphoreo.me>
|
|
Date: Sun, 12 Jun 2022 00:33:21 -0500
|
|
Subject: [PATCH] Reject oversized components from updating
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/network/chat/ComponentUtils.java b/src/main/java/net/minecraft/network/chat/ComponentUtils.java
|
|
index 9d3449dd92bbbef91b627caba752b87d8209011d..e162fb748745ec50189e426c2de5a91ce618be1b 100644
|
|
--- a/src/main/java/net/minecraft/network/chat/ComponentUtils.java
|
|
+++ b/src/main/java/net/minecraft/network/chat/ComponentUtils.java
|
|
@@ -39,8 +39,10 @@ public class ComponentUtils {
|
|
}
|
|
|
|
public static MutableComponent updateForEntity(@Nullable CommandSourceStack source, Component text, @Nullable Entity sender, int depth) throws CommandSyntaxException {
|
|
+ // Scissors start - Reject oversized components
|
|
+ MutableComponent result;
|
|
if (depth > 100) {
|
|
- return text.copy();
|
|
+ result = text.copy();
|
|
} else {
|
|
MutableComponent mutableComponent = text.getContents().resolve(source, sender, depth + 1);
|
|
|
|
@@ -48,8 +50,11 @@ public class ComponentUtils {
|
|
mutableComponent.append(updateForEntity(source, component, sender, depth + 1));
|
|
}
|
|
|
|
- return mutableComponent.withStyle(resolveStyle(source, text.getStyle(), sender, depth));
|
|
+ result = mutableComponent.withStyle(resolveStyle(source, text.getStyle(), sender, depth));
|
|
}
|
|
+ // Would the resulting component exceed 65535 bytes when encoded as a string?
|
|
+ return Component.Serializer.toJson(result).length() > 65535 ? Component.empty() : result;
|
|
+ // Scissors end
|
|
}
|
|
|
|
private static Style resolveStyle(@Nullable CommandSourceStack source, Style style, @Nullable Entity sender, int depth) throws CommandSyntaxException {
|
|
@@ -138,8 +143,8 @@ public class ComponentUtils {
|
|
ComponentContents string = text.getContents();
|
|
if (string instanceof TranslatableContents) {
|
|
TranslatableContents translatableContents = (TranslatableContents)string;
|
|
- String string = translatableContents.getKey();
|
|
- return Language.getInstance().has(string);
|
|
+ String string1 = translatableContents.getKey();
|
|
+ return Language.getInstance().has(string1);
|
|
}
|
|
}
|
|
|