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;
|
package net.momirealms.craftengine.bukkit.compatibility.mythicmobs;
|
||||||
|
|
||||||
import io.lumine.mythic.api.config.MythicLineConfig;
|
|
||||||
import io.lumine.mythic.bukkit.events.MythicDropLoadEvent;
|
import io.lumine.mythic.bukkit.events.MythicDropLoadEvent;
|
||||||
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
|
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
|
||||||
|
import net.momirealms.craftengine.core.item.CustomItem;
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
import net.momirealms.craftengine.core.util.Key;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class MythicItemDropListener implements Listener {
|
public class MythicItemDropListener implements Listener {
|
||||||
private final BukkitCraftEngine plugin;
|
private final BukkitCraftEngine plugin;
|
||||||
@@ -17,15 +20,36 @@ public class MythicItemDropListener implements Listener {
|
|||||||
Bukkit.getPluginManager().registerEvents(this, plugin.javaPlugin());
|
Bukkit.getPluginManager().registerEvents(this, plugin.javaPlugin());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onMythicDropLoad(MythicDropLoadEvent event) {
|
public void onMythicDropLoad(MythicDropLoadEvent event) {
|
||||||
if (!event.getDropName().equalsIgnoreCase("craftengine")) return;
|
if (!"craftengine".equalsIgnoreCase(event.getDropName())) {
|
||||||
String argument = event.getArgument();
|
return;
|
||||||
Key itemId = Key.of(argument);
|
}
|
||||||
this.plugin.itemManager().getCustomItem(itemId).ifPresent(customItem -> {
|
String line = event.getContainer().getLine().toLowerCase(Locale.ROOT);
|
||||||
String line = event.getContainer().getConfigLine();
|
String itemId = extractItemId(line);
|
||||||
MythicLineConfig config = event.getConfig();
|
if (itemId == null || itemId.isEmpty()) {
|
||||||
event.register(new MythicItemDrop(line, config, customItem));
|
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