From f78fc416967802b12babdad36ca316b7360d2b0b Mon Sep 17 00:00:00 2001 From: Krakenied Date: Thu, 26 Dec 2024 21:04:06 +0100 Subject: Fix plugin initialization on Purpur 1.17.1 Closes https://github.com/LMBishop/Quests/issues/756 --- .../quests/bukkit/util/chat/MiniMessageParser.java | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'bukkit/src/main/java') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/MiniMessageParser.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/MiniMessageParser.java index 4f5ded3c..e667acc3 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/MiniMessageParser.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/MiniMessageParser.java @@ -5,12 +5,34 @@ import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + public final class MiniMessageParser { private final MiniMessage miniMessage; public MiniMessageParser() { - this.miniMessage = MiniMessage.miniMessage(); + Method miniMessageGetter; + + try { + miniMessageGetter = MiniMessage.class.getMethod("miniMessage"); + } catch (final NoSuchMethodException e) { + try { + // For some reason on latest Purpur 1.17.1 there is no MiniMessage#miniMessage method + // https://github.com/LMBishop/Quests/issues/756 + //noinspection JavaReflectionMemberAccess + miniMessageGetter = MiniMessage.class.getMethod("get"); + } catch (final NoSuchMethodException e2) { + throw new IllegalStateException("could not find MiniMessage getter"); + } + } + + try { + this.miniMessage = (MiniMessage) miniMessageGetter.invoke(null); + } catch (final IllegalAccessException | InvocationTargetException e) { + throw new IllegalStateException("could not get MiniMessage instance", e); + } } public void send(final @NotNull CommandSender who, final @NotNull String message) { -- cgit v1.2.3-70-g09d2