This commit is contained in:
LogGits 2020-12-30 18:06:37 -06:00 committed by GitHub
commit c7fcf65fac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 28 deletions

View File

@ -40,30 +40,9 @@ public class ItemInfo implements CommandExecutor {
item = parseEvent.getItem();
}
if (MaterialUtil.isEmpty(item)) {
return false;
}
iteminfo.send(sender);
try {
iteminfo_fullname.send(sender, "item", MaterialUtil.getName(item));
} catch (IllegalArgumentException e) {
sender.sendMessage(ChatColor.RED + "Error while generating full name. Please contact an admin or take a look at the console/log!");
ChestShop.getPlugin().getLogger().log(Level.SEVERE, "Error while generating full item name", e);
return true;
}
try {
iteminfo_shopname.send(sender, "item", MaterialUtil.getSignName(item));
} catch (IllegalArgumentException e) {
sender.sendMessage(ChatColor.RED + "Error while generating shop sign name. Please contact an admin or take a look at the console/log!");
ChestShop.getPlugin().getLogger().log(Level.SEVERE, "Error while generating shop sign item name", e);
return true;
}
ItemInfoEvent event = new ItemInfoEvent(sender, item);
ChestShop.callEvent(event);
return true;
return !MaterialUtil.isEmpty(item);
}
}

View File

@ -1,6 +1,7 @@
package com.Acrobot.ChestShop.Events;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
@ -10,15 +11,17 @@ import org.bukkit.inventory.ItemStack;
*
* @author Acrobot
*/
public class ItemInfoEvent extends Event {
public class ItemInfoEvent extends Event implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private CommandSender sender;
private ItemStack item;
private boolean cancelled;
public ItemInfoEvent(CommandSender sender, ItemStack item) {
this.sender = sender;
this.item = item;
this.cancelled = false;
}
/**
@ -42,4 +45,14 @@ public class ItemInfoEvent extends Event {
public static HandlerList getHandlerList() {
return handlers;
}
@Override
public boolean isCancelled () {
return cancelled;
}
@Override
public void setCancelled (boolean b) {
cancelled = b;
}
}

View File

@ -31,7 +31,28 @@ import static com.Acrobot.ChestShop.Configuration.Messages.iteminfo_repaircost;
*/
public class ItemInfoListener implements Listener {
@EventHandler
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public static void messageHandler(ItemInfoEvent event) {
CommandSender sender = event.getSender();
ItemStack item = event.getItem();
iteminfo.send(sender);
try {
iteminfo_fullname.send(sender, "item", MaterialUtil.getName(item));
} catch (IllegalArgumentException e) {
event.getSender().sendMessage(ChatColor.RED + "Error while generating full name. Please contact an admin or take a look at the console/log!");
ChestShop.getPlugin().getLogger().log(Level.SEVERE, "Error while generating full item name", e);
return;
}
try {
iteminfo_shopname.send(sender, "item", MaterialUtil.getSignName(item));
} catch (IllegalArgumentException e) {
sender.sendMessage(ChatColor.RED + "Error while generating shop sign name. Please contact an admin or take a look at the console/log!");
ChestShop.getPlugin().getLogger().log(Level.SEVERE, "Error while generating shop sign item name", e);
}
}
@EventHandler(ignoreCancelled = true)
public static void addRepairCost(ItemInfoEvent event) {
ItemMeta meta = event.getItem().getItemMeta();
if (meta instanceof Repairable && ((Repairable) meta).getRepairCost() > 0) {
@ -39,7 +60,7 @@ public class ItemInfoListener implements Listener {
}
}
@EventHandler
@EventHandler(ignoreCancelled = true)
public static void addEnchantment(ItemInfoEvent event) {
ItemStack item = event.getItem();
ItemMeta meta = item.getItemMeta();
@ -56,7 +77,7 @@ public class ItemInfoListener implements Listener {
}
}
@EventHandler
@EventHandler(ignoreCancelled = true)
public static void addPotionInfo(ItemInfoEvent event) {
ItemStack item = event.getItem();
@ -97,7 +118,7 @@ public class ItemInfoListener implements Listener {
}
}
@EventHandler
@EventHandler(ignoreCancelled = true)
public static void addBookInfo(ItemInfoEvent event) {
ItemMeta meta = event.getItem().getItemMeta();
if (meta instanceof BookMeta) {
@ -115,7 +136,7 @@ public class ItemInfoListener implements Listener {
}
}
@EventHandler
@EventHandler(ignoreCancelled = true)
public static void addLoreInfo(ItemInfoEvent event) {
ItemMeta meta = event.getItem().getItemMeta();
if (meta.hasLore()) {