diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java index 7358fe3da..a9e9ea591 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java @@ -30,6 +30,9 @@ import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes; import mineplex.core.gadget.types.ItemGadget; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.recharge.Recharge; +import mineplex.core.reward.RewardData; +import mineplex.core.reward.RewardRarity; +import mineplex.core.reward.rewards.PetReward; public class ItemCoal extends ItemGadget { @@ -75,6 +78,9 @@ public class ItemCoal extends ItemGadget { if(Manager.getInventoryManager().Get(player).getItemCount(GetName()) >= 50) { + Recharge.Instance.recharge(player, GetName()); + Recharge.Instance.use(player, GetName(), 60000, true, true); + Manager.getInventoryManager().addItemToInventory(new Callback() { @Override @@ -89,6 +95,8 @@ public class ItemCoal extends ItemGadget Manager.getInventoryManager().addItemToInventory(player, GetName(), -50); player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(GetDisplayMaterial(), GetDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(GetName()) + " " + GetName()))); + + Manager.getDonationManager().Get(player).AddUnknownSalesPackagesOwned("Lump of Coal Hat"); } else { @@ -105,12 +113,20 @@ public class ItemCoal extends ItemGadget { if(Manager.getInventoryManager().Get(player).getItemCount(GetName()) >= 500) { - Manager.getInventoryManager().addItemToInventory(new Callback() - { - @Override - public void run(Boolean data) - { - if(data) + Recharge.Instance.recharge(player, GetName()); + Recharge.Instance.use(player, GetName(), 60000, true, true); + + PetReward reward = new PetReward( + Manager.getPetManager(), + Manager.getInventoryManager(), + Manager.getDonationManager(), + "Coal Apparition", "Coal Apparition", EntityType.PIG_ZOMBIE, RewardRarity.OTHER, 0); + + if (reward.canGiveReward(player)) + reward.giveReward(null, player, new Callback() + { + @Override + public void run(RewardData data) { player.sendMessage(F.main("Coal", "You unlocked " + C.cGreen + "Legendary Coal Apparition Pet" + C.cGray + ".")); UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation().add(0, 0.5, 0), 0.15f, 0.5f, 0.15f, 0, 250, ViewDist.LONG); @@ -119,13 +135,11 @@ public class ItemCoal extends ItemGadget Manager.getInventoryManager().addItemToInventory(player, GetName(), -500); player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(GetDisplayMaterial(), GetDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(GetName()) + " " + GetName()))); - } - else - { - player.sendMessage("Something went wrong..."); + + Manager.getDonationManager().Get(player).AddUnknownSalesPackagesOwned("Coal Apparition"); } - } - }, player, "Coal Apparition", 1); + }); + return; } } @@ -135,6 +149,9 @@ public class ItemCoal extends ItemGadget { if(Manager.getInventoryManager().Get(player).getItemCount(GetName()) >= 1000) { + Recharge.Instance.recharge(player, GetName()); + Recharge.Instance.use(player, GetName(), 60000, true, true); + Manager.getInventoryManager().addItemToInventory(new Callback() { @Override @@ -149,6 +166,8 @@ public class ItemCoal extends ItemGadget Manager.getInventoryManager().addItemToInventory(player, GetName(), -1000); player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(GetDisplayMaterial(), GetDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(GetName()) + " " + GetName()))); + + Manager.getDonationManager().Get(player).AddUnknownSalesPackagesOwned("Coal Fumes"); } else { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/inventory/InventoryManager.java b/Plugins/Mineplex.Core/src/mineplex/core/inventory/InventoryManager.java index 0a32aa977..a1d19bd53 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/inventory/InventoryManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/inventory/InventoryManager.java @@ -138,7 +138,18 @@ public class InventoryManager extends MiniDbClientPlugin { public void run() { - addItemToInventoryForOffline(callback, PlayerCache.getInstance().getPlayer(uuid).getAccountId(), item, count); + try + { + addItemToInventoryForOffline(callback, PlayerCache.getInstance().getPlayer(uuid).getAccountId(), item, count); + } + catch (Exception e) + { + e.printStackTrace(); + + System.out.println("-----DEBUG-----"); + System.out.println("PlayerCache Instance: " + (PlayerCache.getInstance() == null)); + System.out.println("PlayerCache Player Object: " + (PlayerCache.getInstance().getPlayer(uuid) == null)); + } } }); }