Brewery/src/com/dre/brewery/listeners/InventoryListener.java

96 lines
2.5 KiB
Java
Raw Normal View History

2013-05-09 21:47:58 +02:00
package com.dre.brewery.listeners;
import org.bukkit.entity.Item;
2013-05-09 21:47:58 +02:00
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.BrewEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryPickupItemEvent;
import org.bukkit.event.inventory.InventoryType;
2013-05-09 21:47:58 +02:00
import org.bukkit.inventory.BrewerInventory;
import org.bukkit.inventory.meta.PotionMeta;
2013-05-09 21:47:58 +02:00
import org.bukkit.inventory.ItemStack;
import org.bukkit.Material;
import com.dre.brewery.Brew;
public class InventoryListener implements Listener {
@EventHandler(priority = EventPriority.HIGH)
public void onBrew(BrewEvent event) {
int slot = 0;
BrewerInventory inv = event.getContents();
ItemStack item;
boolean custom = false;
2013-07-03 18:06:13 +02:00
Boolean[] contents = new Boolean[3];
2013-05-09 21:47:58 +02:00
while (slot < 3) {
item = inv.getItem(slot);
2013-07-03 18:06:13 +02:00
contents[slot] = false;
2013-05-09 21:47:58 +02:00
if (item != null) {
if (item.getType() == Material.POTION) {
if (item.hasItemMeta()) {
2013-07-03 18:06:13 +02:00
int uid = Brew.getUID(item);
if (Brew.potions.containsKey(uid)) {
2013-05-09 21:47:58 +02:00
// has custom potion in "slot"
2013-07-03 18:06:13 +02:00
if (Brew.get(uid).canDistill()) {
// is further distillable
contents[slot] = true;
custom = true;
}
2013-05-09 21:47:58 +02:00
}
}
}
}
slot++;
}
if (custom) {
event.setCancelled(true);
Brew.distillAll(inv, contents);
}
}
// convert to non colored Lore when taking out of Barrel/Brewer
@EventHandler(priority = EventPriority.HIGH)
public void onInventoryClick(InventoryClickEvent event) {
if (event.getInventory().getType() == InventoryType.BREWING) {
if (event.getSlot() > 2) {
return;
}
2013-08-30 21:19:49 +02:00
} else if (event.getInventory().getType() == InventoryType.CHEST) {
if (!event.getInventory().getTitle().equals("Fass")) {
return;
}
2013-08-30 21:19:49 +02:00
} else {
return;
}
ItemStack item = event.getCurrentItem();
if (item != null) {
if (item.getTypeId() == 373) {
if (item.hasItemMeta()) {
PotionMeta meta = (PotionMeta) item.getItemMeta();
Brew brew = Brew.get(meta);
if (brew != null) {
2013-08-30 21:19:49 +02:00
if (Brew.hasColorLore(meta)) {
brew.convertLore(meta, false);
item.setItemMeta(meta);
}
}
}
}
}
}
// block the pickup of items where getPickupDelay is > 1000 (puke)
@EventHandler
public void onInventoryPickupItem(InventoryPickupItemEvent event){
Item item = event.getItem();
if (item.getPickupDelay() > 1000) {
event.setCancelled(true);
}
}
2013-05-09 21:47:58 +02:00
}