ChestShop-3/src/main/java/com/Acrobot/ChestShop/Listeners/Item/ItemStringListener.java

34 lines
1.3 KiB
Java

package com.Acrobot.ChestShop.Listeners.Item;
import com.Acrobot.Breeze.Utils.MaterialUtil;
import com.Acrobot.ChestShop.Events.ItemParseEvent;
import com.Acrobot.ChestShop.Events.ItemStringQueryEvent;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
public class ItemStringListener implements Listener {
@EventHandler(priority = EventPriority.NORMAL)
public static void calculateItemString(ItemStringQueryEvent event) {
if (event.getItemString() == null) {
event.setItemString(MaterialUtil.getName(event.getItem(), event.getMaxLength()));
}
}
@EventHandler(priority = EventPriority.MONITOR)
public static void checkValidity(ItemStringQueryEvent event) {
ItemParseEvent parseEvent = new ItemParseEvent(event.getItemString());
Bukkit.getPluginManager().callEvent(parseEvent);
ItemStack codeItem = parseEvent.getItem();
if (!MaterialUtil.equals(event.getItem(), codeItem)) {
throw new IllegalArgumentException("Cannot generate code for item " + event.getItem()
+ " with maximum length of " + event.getMaxLength()
+ " (code " + event.getItemString() + " results in item " + codeItem + ")");
}
}
}