9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-28 19:39:11 +00:00

添加qs兼容

This commit is contained in:
jhqwqmc
2025-10-06 20:21:20 +08:00
parent 4ababdf113
commit 89df1b4c25
4 changed files with 65 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ repositories {
maven("https://repo.auxilor.io/repository/maven-public/") // eco
maven("https://repo.hiusers.com/releases") // zaphkiel
maven("https://jitpack.io") // sxitem slimefun
maven("https://repo.codemc.io/repository/maven-public/") // quickshop
}
dependencies {
@@ -79,6 +80,8 @@ dependencies {
compileOnly("com.github.Saukiya:SX-Item:4.4.6")
// Slimefun
compileOnly("io.github.Slimefun:Slimefun4:RC-32")
// QuickShop
compileOnly("com.ghostchu:quickshop-api:6.2.0.10")
}
java {

View File

@@ -12,6 +12,7 @@ import net.momirealms.craftengine.bukkit.compatibility.mythicmobs.MythicItemDrop
import net.momirealms.craftengine.bukkit.compatibility.mythicmobs.MythicSkillHelper;
import net.momirealms.craftengine.bukkit.compatibility.papi.PlaceholderAPIUtils;
import net.momirealms.craftengine.bukkit.compatibility.permission.LuckPermsEventListeners;
import net.momirealms.craftengine.bukkit.compatibility.quickshop.QuickShopItemExpressionHandler;
import net.momirealms.craftengine.bukkit.compatibility.region.WorldGuardRegionCondition;
import net.momirealms.craftengine.bukkit.compatibility.skript.SkriptHook;
import net.momirealms.craftengine.bukkit.compatibility.slimeworld.SlimeFormatStorageAdaptor;
@@ -141,6 +142,10 @@ public class BukkitCompatibilityManager implements CompatibilityManager {
ModelEngineUtils.registerConstantBlockEntityRender();
logHook("ModelEngine");
}
if (this.isPluginEnabled("QuickShop-Hikari")) {
new QuickShopItemExpressionHandler(this.plugin);
logHook("QuickShop-Hikari");
}
}
@Override

View File

@@ -0,0 +1,56 @@
package net.momirealms.craftengine.bukkit.compatibility.quickshop;
import com.ghostchu.quickshop.api.QuickShopAPI;
import com.ghostchu.quickshop.api.event.QSConfigurationReloadEvent;
import com.ghostchu.quickshop.api.registry.BuiltInRegistry;
import com.ghostchu.quickshop.api.registry.Registry;
import com.ghostchu.quickshop.api.registry.builtin.itemexpression.ItemExpressionHandler;
import com.ghostchu.quickshop.api.registry.builtin.itemexpression.ItemExpressionRegistry;
import net.momirealms.craftengine.bukkit.api.CraftEngineItems;
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
import net.momirealms.craftengine.core.util.Key;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
public class QuickShopItemExpressionHandler implements ItemExpressionHandler, Listener {
private final BukkitCraftEngine plugin;
public QuickShopItemExpressionHandler(BukkitCraftEngine plugin) {
this.plugin = plugin;
Bukkit.getPluginManager().registerEvents(this, plugin.javaPlugin());
init();
}
public void init() {
Registry registry = QuickShopAPI.getInstance().getRegistry().getRegistry(BuiltInRegistry.ITEM_EXPRESSION);
if (!(registry instanceof ItemExpressionRegistry itemExpressionRegistry)) return;
if (!itemExpressionRegistry.registerHandlerSafely(this)) return;
this.plugin.logger().info("[Compatibility] Successfully registered CraftEngine ItemExpressionHandler to QuickShop-Hikari");
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onQuickShopReload(final QSConfigurationReloadEvent event) {
init();
}
@Override
public @NotNull Plugin getPlugin() {
return this.plugin.javaPlugin();
}
@Override
public String getPrefix() {
return "craftengine";
}
@Override
public boolean match(ItemStack itemStack, String id) {
Key customId = CraftEngineItems.getCustomItemId(itemStack);
return customId != null && id.equals(customId.asString());
}
}

View File

@@ -75,6 +75,7 @@ paper {
}
register("LuckPerms") { required = false }
register("ViaVersion") { required = false }
register("QuickShop-Hikari") { required = false }
// external models
register("ModelEngine") { required = false }