aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src
diff options
context:
space:
mode:
authorKrakenied <krakenied1@gmail.com>2024-12-26 21:04:06 +0100
committerKrakenied <46192742+Krakenied@users.noreply.github.com>2025-05-13 20:34:15 +0200
commitf78fc416967802b12babdad36ca316b7360d2b0b (patch)
treed4ade62feca8f2007e5945be185a6bf9311fb94c /bukkit/src
parentf8fde9d50aabfe3c504e190009d048f7697c93dc (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.java24
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) {