mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-19 15:09:15 +00:00
修复mm获取ce物品
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
package net.momirealms.craftengine.bukkit.compatibility.mythicmobs;
|
||||
|
||||
import io.lumine.mythic.api.config.MythicLineConfig;
|
||||
import io.lumine.mythic.bukkit.events.MythicDropLoadEvent;
|
||||
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
|
||||
import net.momirealms.craftengine.core.item.CustomItem;
|
||||
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 java.util.Locale;
|
||||
|
||||
public class MythicItemDropListener implements Listener {
|
||||
private final BukkitCraftEngine plugin;
|
||||
@@ -17,15 +20,36 @@ public class MythicItemDropListener implements Listener {
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin.javaPlugin());
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onMythicDropLoad(MythicDropLoadEvent event) {
|
||||
if (!event.getDropName().equalsIgnoreCase("craftengine")) return;
|
||||
String argument = event.getArgument();
|
||||
Key itemId = Key.of(argument);
|
||||
this.plugin.itemManager().getCustomItem(itemId).ifPresent(customItem -> {
|
||||
String line = event.getContainer().getConfigLine();
|
||||
MythicLineConfig config = event.getConfig();
|
||||
event.register(new MythicItemDrop(line, config, customItem));
|
||||
});
|
||||
if (!"craftengine".equalsIgnoreCase(event.getDropName())) {
|
||||
return;
|
||||
}
|
||||
String line = event.getContainer().getLine().toLowerCase(Locale.ROOT);
|
||||
String itemId = extractItemId(line);
|
||||
if (itemId == null || itemId.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
CustomItem<ItemStack> customItem = this.plugin.itemManager().getCustomItem(Key.of(itemId)).orElse(null);
|
||||
if (customItem == null) {
|
||||
return;
|
||||
}
|
||||
event.register(new MythicItemDrop(line, event.getConfig(), customItem));
|
||||
}
|
||||
|
||||
private static String extractItemId(String line) {
|
||||
if (line.startsWith("craftengine ")) {
|
||||
int nextSpaceIndex = line.indexOf(' ', 12);
|
||||
return nextSpaceIndex == -1
|
||||
? line.substring(12)
|
||||
: line.substring(12, nextSpaceIndex);
|
||||
}
|
||||
if (line.startsWith("craftengine:")) {
|
||||
int spaceIndex = line.indexOf(' ', 12);
|
||||
return spaceIndex == -1
|
||||
? line.substring(12)
|
||||
: line.substring(12, spaceIndex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user