Skip to content

Commit 03313a1

Browse files
committed
Catch text conversion errors
1 parent 78c5e2c commit 03313a1

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

common/src/main/java/com/viaversion/viaversion/protocols/v1_21_4to1_21_5/rewriter/ComponentRewriter1_21_5.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.viaversion.nbt.tag.ListTag;
2222
import com.viaversion.nbt.tag.StringTag;
2323
import com.viaversion.nbt.tag.Tag;
24+
import com.viaversion.viaversion.api.Via;
2425
import com.viaversion.viaversion.api.connection.UserConnection;
2526
import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey;
2627
import com.viaversion.viaversion.protocols.v1_21_4to1_21_5.Protocol1_21_4To1_21_5;
@@ -31,6 +32,7 @@
3132
import java.net.URI;
3233
import java.net.URISyntaxException;
3334
import java.util.List;
35+
import java.util.logging.Level;
3436
import org.checkerframework.checker.nullness.qual.Nullable;
3537

3638
import static com.viaversion.viaversion.util.TagUtil.getNamespacedCompoundTag;
@@ -300,7 +302,16 @@ private void updateShowEntityHover(final UserConnection connection, final Compou
300302

301303
public Tag uglyJsonToTag(final UserConnection connection, final String value) {
302304
// Use the same version for deserializing and serializing, as we handle the remaining changes ourselves
303-
final Tag contents = SerializerVersion.V1_21_4.toTag(SerializerVersion.V1_21_4.toComponent(value));
305+
final Tag contents;
306+
try {
307+
contents = SerializerVersion.V1_21_4.toTag(SerializerVersion.V1_21_4.toComponent(value));
308+
} catch (final Exception e) {
309+
if (!Via.getConfig().isSuppressConversionWarnings()) {
310+
Via.getPlatform().getLogger().log(Level.SEVERE, "Error converting json text component: " + value, e);
311+
}
312+
return new StringTag("<error>");
313+
}
314+
304315
processTag(connection, contents);
305316
return contents;
306317
}

0 commit comments

Comments
 (0)