From a0f26f1ca3a05efef3f92b6de2dede08143ac35b Mon Sep 17 00:00:00 2001 From: Gero Date: Sun, 3 Oct 2021 12:12:49 +0200 Subject: [PATCH] Fix channel name validation in 1.13 to 1.12.2 protocol (#2701) Closes #2187 --- .../protocols/protocol1_13to1_12_2/data/MappingData.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java index 1ce2ea489..35dee9e1d 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java @@ -137,15 +137,17 @@ public class MappingData extends MappingDataBase { return null; // Not valid } int separatorIndex = newId.indexOf(':'); - // Vanilla parses ``:`` and ```` as ``minecraft:`` (also ensure there's enough space) - if ((separatorIndex == -1 || separatorIndex == 0) && newId.length() <= 10) { + // Vanilla parses an empty and a missing namespace as the minecraft namespace + if (separatorIndex == -1) { newId = "minecraft:" + newId; + } else if (separatorIndex == 0) { + newId = "minecraft" + newId; } return newId; } public static boolean isValid1_13Channel(String channelId) { - return channelId.matches("([0-9a-z_.-]+):([0-9a-z_/.-]+)"); + return channelId.matches("([0-9a-z_.-]+:)?[0-9a-z_/.-]+"); } private void loadTags(Map output, JsonObject newTags) {