2023-02-23 21:58:37 +01:00
|
|
|
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_12to1_11_1;
|
2023-02-20 01:22:57 +01:00
|
|
|
|
|
|
|
import com.viaversion.viaversion.api.Via;
|
|
|
|
import com.viaversion.viaversion.api.minecraft.nbt.BinaryTagIO;
|
|
|
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
|
|
|
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.ChatItemRewriter;
|
|
|
|
import net.raphimc.vialegacy.util.ViaStringTagReader1_11_2;
|
|
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
|
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
|
|
|
|
|
|
import java.util.logging.Level;
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
2023-02-23 19:31:46 +01:00
|
|
|
// Copyright RaphiMC/RK_01 - GPL v3 LICENSE
|
2023-02-20 01:22:57 +01:00
|
|
|
@Mixin(value = ChatItemRewriter.class, remap = false)
|
|
|
|
public abstract class MixinChatItemRewriter {
|
|
|
|
|
|
|
|
@Redirect(method = "toClient", at = @At(value = "INVOKE", target = "Ljava/util/regex/Pattern;matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;"))
|
|
|
|
private static Matcher rewriteShowItem(Pattern pattern, CharSequence input) {
|
|
|
|
try {
|
|
|
|
final CompoundTag tag = ViaStringTagReader1_11_2.getTagFromJson(input.toString());
|
|
|
|
input = BinaryTagIO.writeString(tag);
|
|
|
|
} catch (Throwable e) {
|
|
|
|
Via.getPlatform().getLogger().log(Level.WARNING, "Error converting 1.11.2 nbt to 1.12.2 nbt: '" + input + "'", e);
|
|
|
|
}
|
|
|
|
return Pattern.compile("$^").matcher(input);
|
|
|
|
}
|
|
|
|
}
|