From 2e9eb2a8cd04e5a59c5ef7d43c52cd6af153b892 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Thu, 12 Jun 2025 18:40:19 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat(bukkit):=20=E5=A2=9E=E5=BC=BA=20FastAs?= =?UTF-8?q?yncWorldEdit=20=E5=85=BC=E5=AE=B9=E6=80=A7=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 之前的提示不够显眼已经有2个人反馈此问题特此修复 --- .../BukkitCompatibilityManager.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 049efa25f..6b2b6b923 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -30,10 +30,7 @@ import net.momirealms.craftengine.core.world.WorldManager; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; +import java.util.*; public class BukkitCompatibilityManager implements CompatibilityManager { private final BukkitCraftEngine plugin; @@ -189,7 +186,18 @@ public class BukkitCompatibilityManager implements CompatibilityManager { Plugin fastAsyncWorldEdit = Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit"); String version = VersionHelper.isPaper() ? fastAsyncWorldEdit.getPluginMeta().getVersion() : fastAsyncWorldEdit.getDescription().getVersion(); if (!this.fastAsyncWorldEditVersionCheck(version)) { - this.plugin.logger().warn("[Compatibility] Please update FastAsyncWorldEdit to 2.13.0 or newer for better compatibility"); + new Exception().printStackTrace(); + this.plugin.logger().severe(""); + this.plugin.logger().severe(""); + if (Locale.getDefault() == Locale.SIMPLIFIED_CHINESE) { + this.plugin.logger().severe("[Compatibility] 插件需要更新 FastAsyncWorldEdit 到 2.13.0 或更高版本,以获得更好的兼容性。(当前版本: " + version + ")"); + this.plugin.logger().severe("[Compatibility] 请前往 https://ci.athion.net/job/FastAsyncWorldEdit/ 下载最新版本"); + } else { + this.plugin.logger().severe("[Compatibility] Please update FastAsyncWorldEdit to 2.13.0 or newer for better compatibility. (Current version: " + version + ")"); + this.plugin.logger().severe("[Compatibility] Please go to https://ci.athion.net/job/FastAsyncWorldEdit/ to download the latest version"); + } + this.plugin.logger().severe(""); + this.plugin.logger().severe(""); } new WorldEditBlockRegister(BukkitBlockManager.instance(), true); } From 6fa6ebe3f09e12b1ce0a9bbbdc127d4c258fbbcb Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Sat, 14 Jun 2025 11:53:07 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat(compatibility):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=A4=9A=E4=B8=AA=E6=8F=92=E4=BB=B6=E7=9A=84=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=80=A7=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 兼容 AureliumSkills、McMMO、MMOCore、Jobs、EcoSkills 和 EcoJobs 的等级支持 - 兼容 FreeMinecraftModels 模型放置模型 - 兼容从 CustomFishing 获取物品 --- bukkit/compatibility/build.gradle.kts | 21 ++++++++++ .../BukkitCompatibilityManager.java | 40 +++++++++++++++--- .../item/CustomFishingProvider.java | 23 ++++++++++ .../AureliumSkillsLevelerProvider.java | 27 ++++++++++++ .../leveler/EcoJobsLevelerProvider.java | 28 +++++++++++++ .../leveler/EcoSkillsLevelerProvider.java | 21 ++++++++++ .../leveler/JobsRebornLevelerProvider.java | 30 +++++++++++++ .../leveler/MMOCoreLevelerProvider.java | 20 +++++++++ .../leveler/McMMOLevelerProvider.java | 19 +++++++++ .../bettermodel/BetterModelModel.java | 2 +- .../bettermodel/BetterModelUtils.java | 2 +- .../FreeMinecraftModelsModel.java | 23 ++++++++++ .../FreeMinecraftModelsUtils.java | 42 +++++++++++++++++++ .../modelengine/ModelEngineModel.java | 2 +- .../modelengine/ModelEngineUtils.java | 2 +- bukkit/paper-loader/build.gradle.kts | 8 ++++ .../furniture/AbstractFurnitureManager.java | 2 + 17 files changed, 303 insertions(+), 9 deletions(-) create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/AureliumSkillsLevelerProvider.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoJobsLevelerProvider.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoSkillsLevelerProvider.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/JobsRebornLevelerProvider.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/MMOCoreLevelerProvider.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/McMMOLevelerProvider.java rename bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/{ => model}/bettermodel/BetterModelModel.java (88%) rename bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/{ => model}/bettermodel/BetterModelUtils.java (86%) create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java rename bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/{ => model}/modelengine/ModelEngineModel.java (88%) rename bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/{ => model}/modelengine/ModelEngineUtils.java (92%) diff --git a/bukkit/compatibility/build.gradle.kts b/bukkit/compatibility/build.gradle.kts index e995978d5..d72ffc770 100644 --- a/bukkit/compatibility/build.gradle.kts +++ b/bukkit/compatibility/build.gradle.kts @@ -11,6 +11,10 @@ repositories { maven("https://nexus.phoenixdevt.fr/repository/maven-public/") // mmoitems maven("https://repo.viaversion.com") // via maven("https://repo.skriptlang.org/releases/") // skript + maven("https://nexus.neetgames.com/repository/maven-releases/") // mcmmo + maven("https://repo.dmulloy2.net/repository/public/") // mcmmo required + maven("https://repo.auxilor.io/repository/maven-public/") // eco + maven("https://repo.magmaguy.com/releases") } dependencies { @@ -49,6 +53,23 @@ dependencies { compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } // MythicMobs compileOnly("io.lumine:Mythic-Dist:5.9.0") + // McMMO + compileOnly("com.gmail.nossr50.mcMMO:mcMMO:2.2.038") + // MMOCore + compileOnly("net.Indyuce:MMOCore-API:1.12.1-SNAPSHOT") + // JobsReborn + compileOnly("com.github.Zrips:Jobs:v5.2.2.3") + // CustomFishing + compileOnly("net.momirealms:custom-fishing:2.3.3") + // eco + compileOnly("com.willfp:eco:6.70.1") + compileOnly("com.willfp:EcoJobs:3.56.1") + compileOnly("com.willfp:EcoSkills:3.46.1") + compileOnly("com.willfp:libreforge:4.58.1") + // AureliumSkills + compileOnly("com.github.Archy-X:AureliumSkills:Beta1.3.21") + // FreeMinecraftModels + compileOnly("com.magmaguy:FreeMinecraftModels:2.1.0") } java { diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 6b2b6b923..97c78879f 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -1,14 +1,16 @@ package net.momirealms.craftengine.bukkit.compatibility; import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; -import net.momirealms.craftengine.bukkit.compatibility.bettermodel.BetterModelModel; +import net.momirealms.craftengine.bukkit.compatibility.model.bettermodel.BetterModelModel; +import net.momirealms.craftengine.bukkit.compatibility.item.CustomFishingProvider; import net.momirealms.craftengine.bukkit.compatibility.item.MMOItemsProvider; import net.momirealms.craftengine.bukkit.compatibility.item.MythicMobsProvider; import net.momirealms.craftengine.bukkit.compatibility.item.NeigeItemsProvider; import net.momirealms.craftengine.bukkit.compatibility.legacy.slimeworld.LegacySlimeFormatStorageAdaptor; -import net.momirealms.craftengine.bukkit.compatibility.leveler.AuraSkillsLevelerProvider; -import net.momirealms.craftengine.bukkit.compatibility.modelengine.ModelEngineModel; -import net.momirealms.craftengine.bukkit.compatibility.modelengine.ModelEngineUtils; +import net.momirealms.craftengine.bukkit.compatibility.leveler.*; +import net.momirealms.craftengine.bukkit.compatibility.model.freeminecraftmodels.FreeMinecraftModelsModel; +import net.momirealms.craftengine.bukkit.compatibility.model.modelengine.ModelEngineModel; +import net.momirealms.craftengine.bukkit.compatibility.model.modelengine.ModelEngineUtils; import net.momirealms.craftengine.bukkit.compatibility.mythicmobs.MythicMobsListener; import net.momirealms.craftengine.bukkit.compatibility.papi.PlaceholderAPIUtils; import net.momirealms.craftengine.bukkit.compatibility.permission.LuckPermsEventListeners; @@ -43,7 +45,8 @@ public class BukkitCompatibilityManager implements CompatibilityManager { this.plugin = plugin; this.modelProviders = new HashMap<>(Map.of( "ModelEngine", ModelEngineModel::new, - "BetterModel", BetterModelModel::new + "BetterModel", BetterModelModel::new, + "FreeMinecraftModels", FreeMinecraftModelsModel::new )); this.levelerProviders = new HashMap<>(); } @@ -105,6 +108,29 @@ public class BukkitCompatibilityManager implements CompatibilityManager { this.registerLevelerProvider("AuraSkills", new AuraSkillsLevelerProvider()); logHook("AuraSkills"); } + if (this.isPluginEnabled("AureliumSkills")) { + this.registerLevelerProvider("AureliumSkills", new AureliumSkillsLevelerProvider()); + } + if (this.isPluginEnabled("McMMO")) { + this.registerLevelerProvider("McMMO", new McMMOLevelerProvider()); + logHook("McMMO"); + } + if (this.isPluginEnabled("MMOCore")) { + this.registerLevelerProvider("MMOCore", new MMOCoreLevelerProvider()); + logHook("MMOCore"); + } + if (this.isPluginEnabled("Jobs")) { + registerLevelerProvider("Jobs", new JobsRebornLevelerProvider()); + logHook("Jobs"); + } + if (this.isPluginEnabled("EcoSkills")) { + registerLevelerProvider("EcoSkills", new EcoSkillsLevelerProvider()); + logHook("EcoSkills"); + } + if (this.isPluginEnabled("EcoJobs")) { + registerLevelerProvider("EcoJobs", new EcoJobsLevelerProvider()); + logHook("EcoJobs"); + } if (this.isPluginEnabled("MythicMobs")) { BukkitItemManager.instance().registerExternalItemProvider(new MythicMobsProvider()); new MythicMobsListener(this.plugin); @@ -231,6 +257,10 @@ public class BukkitCompatibilityManager implements CompatibilityManager { itemManager.registerExternalItemProvider(new MMOItemsProvider()); logHook("MMOItems"); } + if (this.isPluginEnabled("CustomFishing")) { + itemManager.registerExternalItemProvider(new CustomFishingProvider()); + logHook("CustomFishing"); + } } private Plugin getPlugin(String name) { diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java new file mode 100644 index 000000000..e32e03631 --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java @@ -0,0 +1,23 @@ +package net.momirealms.craftengine.bukkit.compatibility.item; + +import net.momirealms.craftengine.core.item.ExternalItemProvider; +import net.momirealms.craftengine.core.item.ItemBuildContext; +import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; +import net.momirealms.customfishing.api.mechanic.context.Context; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.Nullable; + +public class CustomFishingProvider implements ExternalItemProvider { + @Override + public String plugin() { + return "CustomFishing"; + } + + @Nullable + @Override + public ItemStack build(String id, ItemBuildContext context) { + return BukkitCustomFishingPlugin.getInstance().getItemManager() + .buildInternal(Context.player(((Player) context.player().platformPlayer())), id); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/AureliumSkillsLevelerProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/AureliumSkillsLevelerProvider.java new file mode 100644 index 000000000..db609f775 --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/AureliumSkillsLevelerProvider.java @@ -0,0 +1,27 @@ +package net.momirealms.craftengine.bukkit.compatibility.leveler; + +import com.archyx.aureliumskills.api.AureliumAPI; +import com.archyx.aureliumskills.leveler.Leveler; +import com.archyx.aureliumskills.skills.SkillRegistry; +import net.momirealms.craftengine.core.entity.player.Player; +import net.momirealms.craftengine.core.plugin.compatibility.LevelerProvider; + +public class AureliumSkillsLevelerProvider implements LevelerProvider { + private final Leveler leveler; + private final SkillRegistry skillRegistry; + + public AureliumSkillsLevelerProvider() { + this.leveler = AureliumAPI.getPlugin().getLeveler(); + this.skillRegistry = AureliumAPI.getPlugin().getSkillRegistry(); + } + + @Override + public void addExp(Player player, String target, double amount) { + this.leveler.addXp(((org.bukkit.entity.Player) player.platformPlayer()), this.skillRegistry.getSkill(target), amount); + } + + @Override + public int getLevel(Player player, String target) { + return AureliumAPI.getSkillLevel(((org.bukkit.entity.Player) player.platformPlayer()), this.skillRegistry.getSkill(target)); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoJobsLevelerProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoJobsLevelerProvider.java new file mode 100644 index 000000000..37bfca61b --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoJobsLevelerProvider.java @@ -0,0 +1,28 @@ +package net.momirealms.craftengine.bukkit.compatibility.leveler; + +import com.willfp.ecojobs.api.EcoJobsAPI; +import com.willfp.ecojobs.jobs.Job; +import com.willfp.ecojobs.jobs.Jobs; +import net.momirealms.craftengine.core.entity.player.Player; +import net.momirealms.craftengine.core.plugin.compatibility.LevelerProvider; + +public class EcoJobsLevelerProvider implements LevelerProvider { + + @Override + public void addExp(Player player, String target, double amount) { + org.bukkit.entity.Player bukkitPlayer = (org.bukkit.entity.Player) player.platformPlayer(); + for (Job job : EcoJobsAPI.getActiveJobs(bukkitPlayer)) { + if (job.getId().equals(target)) { + EcoJobsAPI.giveJobExperience(bukkitPlayer, job, amount); + return; + } + } + } + + @Override + public int getLevel(Player player, String target) { + Job job = Jobs.getByID(target); + if (job == null) return 0; + return EcoJobsAPI.getJobLevel(((org.bukkit.entity.Player) player.platformPlayer()), job); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoSkillsLevelerProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoSkillsLevelerProvider.java new file mode 100644 index 000000000..c22e33bef --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/EcoSkillsLevelerProvider.java @@ -0,0 +1,21 @@ +package net.momirealms.craftengine.bukkit.compatibility.leveler; + +import com.willfp.ecoskills.api.EcoSkillsAPI; +import com.willfp.ecoskills.skills.Skills; +import net.momirealms.craftengine.core.entity.player.Player; +import net.momirealms.craftengine.core.plugin.compatibility.LevelerProvider; + +import java.util.Objects; + +public class EcoSkillsLevelerProvider implements LevelerProvider { + + @Override + public void addExp(Player player, String target, double amount) { + EcoSkillsAPI.gainSkillXP(((org.bukkit.entity.Player) player.platformPlayer()), Objects.requireNonNull(Skills.INSTANCE.getByID(target)), amount); + } + + @Override + public int getLevel(Player player, String target) { + return EcoSkillsAPI.getSkillLevel(((org.bukkit.entity.Player) player.platformPlayer()), Objects.requireNonNull(Skills.INSTANCE.getByID(target))); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/JobsRebornLevelerProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/JobsRebornLevelerProvider.java new file mode 100644 index 000000000..47cc9fd5a --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/JobsRebornLevelerProvider.java @@ -0,0 +1,30 @@ +package net.momirealms.craftengine.bukkit.compatibility.leveler; + +import com.gamingmesh.jobs.Jobs; +import com.gamingmesh.jobs.container.Job; +import com.gamingmesh.jobs.container.JobProgression; +import com.gamingmesh.jobs.container.JobsPlayer; +import net.momirealms.craftengine.core.entity.player.Player; +import net.momirealms.craftengine.core.plugin.compatibility.LevelerProvider; + +public class JobsRebornLevelerProvider implements LevelerProvider { + + @Override + public void addExp(Player player, String target, double amount) { + JobsPlayer jobsPlayer = Jobs.getPlayerManager().getJobsPlayer(player.uuid()); + Job job = Jobs.getJob(target); + if (jobsPlayer != null && jobsPlayer.isInJob(job)) { + Jobs.getPlayerManager().addExperience(jobsPlayer, job, amount); + } + } + + @Override + public int getLevel(Player player, String target) { + JobsPlayer jobsPlayer = Jobs.getPlayerManager().getJobsPlayer(player.uuid()); + if (jobsPlayer != null) { + JobProgression jobProgression = jobsPlayer.getJobProgression(Jobs.getJob(target)); + return jobProgression.getLevel(); + } + return 0; + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/MMOCoreLevelerProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/MMOCoreLevelerProvider.java new file mode 100644 index 000000000..e7134e6ca --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/MMOCoreLevelerProvider.java @@ -0,0 +1,20 @@ +package net.momirealms.craftengine.bukkit.compatibility.leveler; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.experience.EXPSource; +import net.momirealms.craftengine.core.entity.player.Player; +import net.momirealms.craftengine.core.plugin.compatibility.LevelerProvider; + +public class MMOCoreLevelerProvider implements LevelerProvider { + + @Override + public void addExp(Player player, String target, double amount) { + MMOCore.plugin.professionManager.get(target).giveExperience(PlayerData.get(player.uuid()), amount, null , EXPSource.OTHER); + } + + @Override + public int getLevel(Player player, String target) { + return PlayerData.get(player.uuid()).getCollectionSkills().getLevel(MMOCore.plugin.professionManager.get(target)); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/McMMOLevelerProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/McMMOLevelerProvider.java new file mode 100644 index 000000000..492eb9949 --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/leveler/McMMOLevelerProvider.java @@ -0,0 +1,19 @@ +package net.momirealms.craftengine.bukkit.compatibility.leveler; + +import com.gmail.nossr50.api.ExperienceAPI; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +import net.momirealms.craftengine.core.entity.player.Player; +import net.momirealms.craftengine.core.plugin.compatibility.LevelerProvider; + +public class McMMOLevelerProvider implements LevelerProvider { + + @Override + public void addExp(Player player, String target, double amount) { + ExperienceAPI.addRawXP((org.bukkit.entity.Player) player.platformPlayer(), target, (float) amount, "UNKNOWN"); + } + + @Override + public int getLevel(Player player, String target) { + return ExperienceAPI.getLevel((org.bukkit.entity.Player) player.platformPlayer(), PrimarySkillType.valueOf(target)); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/bettermodel/BetterModelModel.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/bettermodel/BetterModelModel.java similarity index 88% rename from bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/bettermodel/BetterModelModel.java rename to bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/bettermodel/BetterModelModel.java index 5dfa9c816..bfda089ba 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/bettermodel/BetterModelModel.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/bettermodel/BetterModelModel.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.bukkit.compatibility.bettermodel; +package net.momirealms.craftengine.bukkit.compatibility.model.bettermodel; import net.momirealms.craftengine.core.entity.AbstractEntity; import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel; diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/bettermodel/BetterModelUtils.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/bettermodel/BetterModelUtils.java similarity index 86% rename from bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/bettermodel/BetterModelUtils.java rename to bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/bettermodel/BetterModelUtils.java index 93696e7f5..eb103dc80 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/bettermodel/BetterModelUtils.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/bettermodel/BetterModelUtils.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.bukkit.compatibility.bettermodel; +package net.momirealms.craftengine.bukkit.compatibility.model.bettermodel; import kr.toxicity.model.api.BetterModel; import kr.toxicity.model.api.data.renderer.BlueprintRenderer; diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java new file mode 100644 index 000000000..6556557fb --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java @@ -0,0 +1,23 @@ +package net.momirealms.craftengine.bukkit.compatibility.model.freeminecraftmodels; + +import net.momirealms.craftengine.core.entity.AbstractEntity; +import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel; + +public class FreeMinecraftModelsModel extends AbstractExternalModel { + + + public FreeMinecraftModelsModel(String id) { + super(id); + } + + @Override + public String plugin() { + return "FreeMinecraftModels"; + } + + @Override + public void bindModel(AbstractEntity entity) { + org.bukkit.entity.Entity bukkitEntity = (org.bukkit.entity.Entity) entity.literalObject(); + FreeMinecraftModelsUtils.bindModel(bukkitEntity, id()); + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java new file mode 100644 index 000000000..3016e82e7 --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java @@ -0,0 +1,42 @@ +package net.momirealms.craftengine.bukkit.compatibility.model.freeminecraftmodels; + +import com.magmaguy.freeminecraftmodels.customentity.StaticEntity; +import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; +import net.momirealms.craftengine.bukkit.plugin.scheduler.impl.FoliaTask; +import net.momirealms.craftengine.core.plugin.scheduler.SchedulerTask; +import net.momirealms.craftengine.core.util.VersionHelper; +import org.bukkit.entity.Entity; + +public class FreeMinecraftModelsUtils { + + public static void bindModel(Entity base, String id) { + StaticEntity staticEntity = StaticEntity.create(id, base.getLocation()); + if (staticEntity != null) { + new FreeMinecraftModelsModelTask(staticEntity, base); + } + } + + public static class FreeMinecraftModelsModelTask implements Runnable { + private final StaticEntity staticEntity; + private final Entity base; + private final SchedulerTask task; + + public FreeMinecraftModelsModelTask(StaticEntity staticEntity, Entity base) { + this.staticEntity = staticEntity; + this.base = base; + if (VersionHelper.isFolia()) { + this.task = new FoliaTask(base.getScheduler().runAtFixedRate(BukkitCraftEngine.instance().javaPlugin(), (t) -> this.run(), () -> {}, 1, 1)); + } else { + this.task = BukkitCraftEngine.instance().scheduler().sync().runRepeating(this, 1, 1); + } + } + + @Override + public void run() { + if (!this.base.isValid()) { + this.staticEntity.remove(); + this.task.cancel(); + } + } + } +} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/modelengine/ModelEngineModel.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/modelengine/ModelEngineModel.java similarity index 88% rename from bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/modelengine/ModelEngineModel.java rename to bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/modelengine/ModelEngineModel.java index 8ce03f0d6..a4d35dc4e 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/modelengine/ModelEngineModel.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/modelengine/ModelEngineModel.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.bukkit.compatibility.modelengine; +package net.momirealms.craftengine.bukkit.compatibility.model.modelengine; import net.momirealms.craftengine.core.entity.AbstractEntity; import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel; diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/modelengine/ModelEngineUtils.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/modelengine/ModelEngineUtils.java similarity index 92% rename from bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/modelengine/ModelEngineUtils.java rename to bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/modelengine/ModelEngineUtils.java index a2f952689..b32074691 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/modelengine/ModelEngineUtils.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/modelengine/ModelEngineUtils.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.bukkit.compatibility.modelengine; +package net.momirealms.craftengine.bukkit.compatibility.model.modelengine; import com.ticxo.modelengine.api.ModelEngineAPI; import com.ticxo.modelengine.api.model.ActiveModel; diff --git a/bukkit/paper-loader/build.gradle.kts b/bukkit/paper-loader/build.gradle.kts index 2ffb47974..48c20fc80 100644 --- a/bukkit/paper-loader/build.gradle.kts +++ b/bukkit/paper-loader/build.gradle.kts @@ -77,14 +77,22 @@ paper { // external models register("ModelEngine") { required = false } register("BetterModel") { required = false } + register("FreeMinecraftModels") { required = false } // external items register("NeigeItems") { required = false } register("MMOItems") { required = false } register("MythicMobs") { required = false } + register("CustomFishing") { required = false } // leveler register("AuraSkills") { required = false } + register("AureliumSkills") { required = false } + register("McMMO") { required = false } + register("MMOCore") { required = false } + register("Jobs") { required = false } + register("EcoSkills") { required = false } + register("EcoJobs") { required = false } // anti grief lib register("Dominion") { required = false } diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java index cab15452d..b9f73c267 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java @@ -122,6 +122,8 @@ public abstract class AbstractFurnitureManager implements FurnitureManager { externalModel = Optional.of(plugin.compatibilityManager().createModel("ModelEngine", placementArguments.get("model-engine").toString())); } else if (placementArguments.containsKey("better-model")) { externalModel = Optional.of(plugin.compatibilityManager().createModel("BetterModel", placementArguments.get("better-model").toString())); + } else if (placementArguments.containsKey("free-minecraft-models")) { + externalModel = Optional.of(plugin.compatibilityManager().createModel("FreeMinecraftModels", placementArguments.get("free-minecraft-models").toString())); } else { externalModel = Optional.empty(); } From 40806e141e0617d282faf20b3667f50c31355bfe Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Sat, 14 Jun 2025 11:54:42 +0800 Subject: [PATCH 3/5] =?UTF-8?q?refactor(bukkit):=20=E7=A7=BB=E9=99=A4=20Fa?= =?UTF-8?q?stAsyncWorldEdit=20=E7=89=88=E6=9C=AC=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=A0=86=E6=A0=88=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/compatibility/BukkitCompatibilityManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 97c78879f..1371ee524 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -212,7 +212,6 @@ public class BukkitCompatibilityManager implements CompatibilityManager { Plugin fastAsyncWorldEdit = Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit"); String version = VersionHelper.isPaper() ? fastAsyncWorldEdit.getPluginMeta().getVersion() : fastAsyncWorldEdit.getDescription().getVersion(); if (!this.fastAsyncWorldEditVersionCheck(version)) { - new Exception().printStackTrace(); this.plugin.logger().severe(""); this.plugin.logger().severe(""); if (Locale.getDefault() == Locale.SIMPLIFIED_CHINESE) { From f7e2ec15cb1812250e74ce7081b8b8a753e6e0d0 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Sat, 14 Jun 2025 17:03:09 +0800 Subject: [PATCH 4/5] =?UTF-8?q?refactor(model):=20=E7=A7=BB=E9=99=A4=20Fre?= =?UTF-8?q?eMinecraftModels=20=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 由于 FreeMinecraftModels 的 api 不完善所以移除兼容 --- .../BukkitCompatibilityManager.java | 4 +- .../FreeMinecraftModelsModel.java | 23 ---------- .../FreeMinecraftModelsUtils.java | 42 ------------------- .../furniture/AbstractFurnitureManager.java | 2 - 4 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java delete mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 1371ee524..518dca60b 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.compatibility.item.MythicMobsProvider; import net.momirealms.craftengine.bukkit.compatibility.item.NeigeItemsProvider; import net.momirealms.craftengine.bukkit.compatibility.legacy.slimeworld.LegacySlimeFormatStorageAdaptor; import net.momirealms.craftengine.bukkit.compatibility.leveler.*; -import net.momirealms.craftengine.bukkit.compatibility.model.freeminecraftmodels.FreeMinecraftModelsModel; import net.momirealms.craftengine.bukkit.compatibility.model.modelengine.ModelEngineModel; import net.momirealms.craftengine.bukkit.compatibility.model.modelengine.ModelEngineUtils; import net.momirealms.craftengine.bukkit.compatibility.mythicmobs.MythicMobsListener; @@ -45,8 +44,7 @@ public class BukkitCompatibilityManager implements CompatibilityManager { this.plugin = plugin; this.modelProviders = new HashMap<>(Map.of( "ModelEngine", ModelEngineModel::new, - "BetterModel", BetterModelModel::new, - "FreeMinecraftModels", FreeMinecraftModelsModel::new + "BetterModel", BetterModelModel::new )); this.levelerProviders = new HashMap<>(); } diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java deleted file mode 100644 index 6556557fb..000000000 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsModel.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.momirealms.craftengine.bukkit.compatibility.model.freeminecraftmodels; - -import net.momirealms.craftengine.core.entity.AbstractEntity; -import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel; - -public class FreeMinecraftModelsModel extends AbstractExternalModel { - - - public FreeMinecraftModelsModel(String id) { - super(id); - } - - @Override - public String plugin() { - return "FreeMinecraftModels"; - } - - @Override - public void bindModel(AbstractEntity entity) { - org.bukkit.entity.Entity bukkitEntity = (org.bukkit.entity.Entity) entity.literalObject(); - FreeMinecraftModelsUtils.bindModel(bukkitEntity, id()); - } -} diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java deleted file mode 100644 index 3016e82e7..000000000 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/model/freeminecraftmodels/FreeMinecraftModelsUtils.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.momirealms.craftengine.bukkit.compatibility.model.freeminecraftmodels; - -import com.magmaguy.freeminecraftmodels.customentity.StaticEntity; -import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; -import net.momirealms.craftengine.bukkit.plugin.scheduler.impl.FoliaTask; -import net.momirealms.craftengine.core.plugin.scheduler.SchedulerTask; -import net.momirealms.craftengine.core.util.VersionHelper; -import org.bukkit.entity.Entity; - -public class FreeMinecraftModelsUtils { - - public static void bindModel(Entity base, String id) { - StaticEntity staticEntity = StaticEntity.create(id, base.getLocation()); - if (staticEntity != null) { - new FreeMinecraftModelsModelTask(staticEntity, base); - } - } - - public static class FreeMinecraftModelsModelTask implements Runnable { - private final StaticEntity staticEntity; - private final Entity base; - private final SchedulerTask task; - - public FreeMinecraftModelsModelTask(StaticEntity staticEntity, Entity base) { - this.staticEntity = staticEntity; - this.base = base; - if (VersionHelper.isFolia()) { - this.task = new FoliaTask(base.getScheduler().runAtFixedRate(BukkitCraftEngine.instance().javaPlugin(), (t) -> this.run(), () -> {}, 1, 1)); - } else { - this.task = BukkitCraftEngine.instance().scheduler().sync().runRepeating(this, 1, 1); - } - } - - @Override - public void run() { - if (!this.base.isValid()) { - this.staticEntity.remove(); - this.task.cancel(); - } - } - } -} diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java index b9f73c267..cab15452d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java @@ -122,8 +122,6 @@ public abstract class AbstractFurnitureManager implements FurnitureManager { externalModel = Optional.of(plugin.compatibilityManager().createModel("ModelEngine", placementArguments.get("model-engine").toString())); } else if (placementArguments.containsKey("better-model")) { externalModel = Optional.of(plugin.compatibilityManager().createModel("BetterModel", placementArguments.get("better-model").toString())); - } else if (placementArguments.containsKey("free-minecraft-models")) { - externalModel = Optional.of(plugin.compatibilityManager().createModel("FreeMinecraftModels", placementArguments.get("free-minecraft-models").toString())); } else { externalModel = Optional.empty(); } From 00d87f30c3880077300719caaf239e53ad4265b6 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Sat, 14 Jun 2025 17:13:32 +0800 Subject: [PATCH 5/5] =?UTF-8?q?refactor(model):=20=E6=B8=85=E7=90=86=20Fre?= =?UTF-8?q?eMinecraftModels=20=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bukkit/compatibility/build.gradle.kts | 3 --- 1 file changed, 3 deletions(-) diff --git a/bukkit/compatibility/build.gradle.kts b/bukkit/compatibility/build.gradle.kts index d72ffc770..957f7f6b1 100644 --- a/bukkit/compatibility/build.gradle.kts +++ b/bukkit/compatibility/build.gradle.kts @@ -14,7 +14,6 @@ repositories { maven("https://nexus.neetgames.com/repository/maven-releases/") // mcmmo maven("https://repo.dmulloy2.net/repository/public/") // mcmmo required maven("https://repo.auxilor.io/repository/maven-public/") // eco - maven("https://repo.magmaguy.com/releases") } dependencies { @@ -68,8 +67,6 @@ dependencies { compileOnly("com.willfp:libreforge:4.58.1") // AureliumSkills compileOnly("com.github.Archy-X:AureliumSkills:Beta1.3.21") - // FreeMinecraftModels - compileOnly("com.magmaguy:FreeMinecraftModels:2.1.0") } java {