aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java')
-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) {