diff options
| author | Krakenied <krakenied1@gmail.com> | 2024-12-26 21:04:06 +0100 |
|---|---|---|
| committer | Krakenied <46192742+Krakenied@users.noreply.github.com> | 2025-05-13 20:34:15 +0200 |
| commit | f78fc416967802b12babdad36ca316b7360d2b0b (patch) | |
| tree | d4ade62feca8f2007e5945be185a6bf9311fb94c /bukkit/src | |
| parent | f8fde9d50aabfe3c504e190009d048f7697c93dc (diff) | |
Fix plugin initialization on Purpur 1.17.1
Closes https://github.com/LMBishop/Quests/issues/756
Diffstat (limited to 'bukkit/src')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/MiniMessageParser.java | 24 |
1 files changed, 23 insertions, 1 deletions
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) { |
