From 76b6e574ce4240ae43e2c24f91898919c36dce35 Mon Sep 17 00:00:00 2001 From: zheng sen he <61687266+meteorOSS@users.noreply.github.com> Date: Wed, 7 Feb 2024 23:59:03 +0800 Subject: [PATCH] support lasted version(mythiclib1.6,mmoitems6.9.4) --- pom.xml | 12 ++++++----- src/main/java/eu/asangarin/mana/MMOMana.java | 21 ++++++++++++++++++- .../eu/asangarin/mana/api/ResourceData.java | 8 +++---- .../mana/manager/PlayerDataManager.java | 1 - 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 520d665..83c53e4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ eu.asangarin MMOMana - 1.3 + 1.3.1-update jar MMOMana @@ -80,14 +80,16 @@ net.Indyuce MMOItems - 6.5.4 - provided + 6.9.4 + system + ${basedir}/src/lib/MMOItems-6.9.4.jar io.lumine MythicLib - 1.0.6 - provided + 1.6 + system + ${basedir}/src/lib/MythicLib-1.6.1.jar me.clip diff --git a/src/main/java/eu/asangarin/mana/MMOMana.java b/src/main/java/eu/asangarin/mana/MMOMana.java index 76021e4..b14c795 100644 --- a/src/main/java/eu/asangarin/mana/MMOMana.java +++ b/src/main/java/eu/asangarin/mana/MMOMana.java @@ -1,5 +1,8 @@ package eu.asangarin.mana; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; import java.util.logging.Level; import eu.asangarin.mana.api.ResourceData; @@ -8,6 +11,7 @@ import eu.asangarin.mana.comp.PAPIPlaceholders; import eu.asangarin.mana.manager.PlayerDataManager; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.comp.rpg.RPGHandler; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; @@ -41,7 +45,21 @@ public void onEnable() { Bukkit.getPluginManager().disablePlugin(this); return; } - MMOItems.plugin.setRPG(new DefaultHook()); + +// MMOItems.plugin.setRPG(new DefaultHook()); + + try { + MMOItems instance = MMOItems.plugin; + Field rpgPluginsField = MMOItems.class.getDeclaredField("rpgPlugins"); + rpgPluginsField.setAccessible(true); + List newRpgPlugins = new ArrayList<>(); + newRpgPlugins.add(new DefaultHook()); + rpgPluginsField.set(instance, newRpgPlugins); + + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + Bukkit.getOnlinePlayers().forEach(this.dataManager::setup); if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { @@ -58,6 +76,7 @@ public void onEnable() { } } }, 100L, config.refreshRate); + Bukkit.getScheduler().runTaskTimerAsynchronously(this, () -> dataManager.getLoaded().removeIf(data -> !data.toMMOLib().isOnline()), 600000L, 600000L); } } diff --git a/src/main/java/eu/asangarin/mana/api/ResourceData.java b/src/main/java/eu/asangarin/mana/api/ResourceData.java index 1cf1788..d6dae57 100644 --- a/src/main/java/eu/asangarin/mana/api/ResourceData.java +++ b/src/main/java/eu/asangarin/mana/api/ResourceData.java @@ -20,10 +20,10 @@ public class ResourceData { public ResourceData(MMOPlayerData data) { this.data = data; - data.getStatMap().getInstance("MAX_MANA").addModifier("manaAndStamina", new StatModifier(ResourceData.StatType.MAX_MANA.getBase())); - data.getStatMap().getInstance("MAX_STAMINA").addModifier("manaAndStamina", new StatModifier(ResourceData.StatType.MAX_STAMINA.getBase())); - data.getStatMap().getInstance("MANA_REGENERATION").addModifier("manaAndStamina", new StatModifier(ResourceData.StatType.MANA_REGENERATION.getBase())); - data.getStatMap().getInstance("STAMINA_REGENERATION").addModifier("manaAndStamina", new StatModifier(ResourceData.StatType.STAMINA_REGENERATION.getBase())); + new StatModifier("manaAndStamina","MAX_MANA", StatType.MAX_MANA.getBase()).register(data); + new StatModifier("manaAndStamina","MAX_STAMINA", StatType.MAX_STAMINA.getBase()).register(data); + new StatModifier("manaAndStamina","MANA_REGENERATION", StatType.MANA_REGENERATION.getBase()).register(data); + new StatModifier("manaAndStamina","STAMINA_REGENERATION", StatType.STAMINA_REGENERATION.getBase()).register(data); this.mana = MMOMana.plugin.config.loginManaRatio / 100.0D * this.getStat(ResourceData.StatType.MAX_MANA); this.stamina = MMOMana.plugin.config.loginStaminaRatio / 100.0D * this.getStat(ResourceData.StatType.MAX_STAMINA); } diff --git a/src/main/java/eu/asangarin/mana/manager/PlayerDataManager.java b/src/main/java/eu/asangarin/mana/manager/PlayerDataManager.java index a6e74aa..920c599 100644 --- a/src/main/java/eu/asangarin/mana/manager/PlayerDataManager.java +++ b/src/main/java/eu/asangarin/mana/manager/PlayerDataManager.java @@ -20,7 +20,6 @@ public void setup(Player player) { if (!this.map.containsKey(player.getUniqueId())) { this.map.put(player.getUniqueId(), new ResourceData(MMOPlayerData.get(player))); } - } public ResourceData get(OfflinePlayer player) {