* @param scie ShowCaseInfoEvent with needed information about the shop and player
*/
@EventHandler (ignoreCancelled=true, priority=EventPriority.MONITOR) // monitor is to check the outcome (http://wiki.bukkit.org/Event_API_Reference)
public void onShowCaseInfoEvent (ShowCaseInfoEvent scie) {
Player player = scie.getPlayer();
Shop shop = scie.getShop();
if (shop instanceof DisplayShop) {
scs.msgPlayer(player, Term.ITEM_ON_DISPLAY.get(MaterialNames.getItemName(shop.getItemStack())));
}
if (!shop.isActive()) {
scs.msgPlayer(player, Term.INFO_1.get(shop.getClass().getSimpleName()) + ", "+Term.INFO_12.get()+", "+Term.INFO_9.get(shop.getOwner()));
return;
}
// shop type + price + owner
scs.msgPlayer(player, String.format("%-25s %-20s %s",
Term.INFO_1.get(shop.getClass().getSimpleName()),
Term.INFO_2.get(scs.formatCurrency(shop.getPrice())),
Term.INFO_9.get(shop.getOwner())));
// buy shop item
if (shop instanceof BuyShop) {
BuyShop shopBuy = (BuyShop)shop;
scs.msgPlayer(player, String.format("%-30s %s",
Term.INFO_4.get(MaterialNames.getItemName(shop.getItemStack())),
Term.INFO_3.get(shop.isUnlimited() ? Term.INFO_UNLIMITED.get() : String.format("%d/%d", shopBuy.getAmount(), shopBuy.getMaxAmount()))));
}
// sell shop item
else if (shop instanceof SellShop) {
scs.msgPlayer(player, String.format("%-30s %s",
Term.INFO_4.get(MaterialNames.getItemName(shop.getItemStack())),
Term.INFO_3.get(shop.isUnlimited() ? Term.INFO_UNLIMITED.get() : String.format("%d", shop.getAmount()))));
}
// exchange shop items + enchantments
if (shop instanceof ExchangeShop) {
ExchangeShop shopEx = (ExchangeShop)shop;
// normal stack
if (shopEx.getItemStack().getEnchantments().size() > 0) {
// just show the ItemStack
scs.msgPlayer(player, String.format("&-30s %s",
Term.INFO_4.get(MaterialNames.getItemName(shopEx.getItemStack())),
Term.INFO_8.get("" + shopEx.getItemStack().getEnchantments().size())));
// list enchantments
for (Entry<Enchantment, Integer> entry : shopEx.getItemStack().getEnchantments().entrySet()) {
scs.msgPlayer(player, " - "+entry.getKey().getName() +" "+entry.getValue());
}
} else {
// just show the ItemStack
scs.msgPlayer(player, Term.INFO_4.get(MaterialNames.getItemName(shopEx.getItemStack())));
}
// exchange stack
if (shopEx.getExchangeItemStack().getEnchantments().size() > 0) {
// just show the ItemStack
scs.msgPlayer(player, String.format("&-30s %s",
Term.INFO_4.get(MaterialNames.getItemName(shopEx.getExchangeItemStack())),
Term.INFO_8.get("" + shopEx.getExchangeItemStack().getEnchantments().size())));
// list enchantments
for (Entry<Enchantment, Integer> entry : shopEx.getExchangeItemStack().getEnchantments().entrySet()) {
scs.msgPlayer(player, " - "+entry.getKey().getName() +" "+entry.getValue());
}
} else {
// just show the ItemStack
scs.msgPlayer(player, Term.INFO_4.get(MaterialNames.getItemName(shopEx.getExchangeItemStack())));
}
// others enchantments
} else if (shop.getItemStack().getEnchantments().size() > 0) {
// enchantments here
scs.msgPlayer(player, Term.INFO_8.get("" + shop.getItemStack().getEnchantments().size()));
// list enchantments
for (Entry<Enchantment, Integer> entry : shop.getItemStack().getEnchantments().entrySet()) {
scs.msgPlayer(player, " - "+entry.getKey().getName() +" "+entry.getValue());
}
}
}