34 lines
1.3 KiB
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 + ")");
|
|
}
|
|
}
|
|
|
|
}
|