package com.laytonsmith.abstraction.bukkit; import com.laytonsmith.abstraction.AbstractionObject; import com.laytonsmith.abstraction.MCItemStack; import com.laytonsmith.abstraction.MCPlayerInventory; import com.laytonsmith.abstraction.enums.MCVersion; import com.laytonsmith.core.Static; import org.bukkit.entity.Player; import org.bukkit.inventory.PlayerInventory; /** * * */ public class BukkitMCPlayerInventory extends BukkitMCInventory implements MCPlayerInventory { private PlayerInventory i; public BukkitMCPlayerInventory(PlayerInventory inventory) { super(inventory); this.i = inventory; } public BukkitMCPlayerInventory(AbstractionObject a){ this((PlayerInventory)null); if(a instanceof MCPlayerInventory){ this.i = ((PlayerInventory)a.getHandle()); } else { throw new ClassCastException(); } } @Override public void setHelmet(MCItemStack stack) { this.i.setHelmet(((BukkitMCItemStack)stack).is); if(this.i.getHolder() instanceof Player){ ((Player)this.i.getHolder()).updateInventory(); } } @Override public void setChestplate(MCItemStack stack) { this.i.setChestplate(((BukkitMCItemStack)stack).is); if(this.i.getHolder() instanceof Player){ ((Player)this.i.getHolder()).updateInventory(); } } @Override public void setLeggings(MCItemStack stack) { this.i.setLeggings(((BukkitMCItemStack)stack).is); if(this.i.getHolder() instanceof Player){ ((Player)this.i.getHolder()).updateInventory(); } } @Override public void setBoots(MCItemStack stack) { this.i.setBoots(((BukkitMCItemStack)stack).is); if(this.i.getHolder() instanceof Player){ ((Player)this.i.getHolder()).updateInventory(); } } @Override public void setItemInOffHand(MCItemStack stack) { if(Static.getServer().getMinecraftVersion().gte(MCVersion.MC1_9)){ this.i.setItemInOffHand(((BukkitMCItemStack) stack).is); if(this.i.getHolder() instanceof Player){ ((Player) this.i.getHolder()).updateInventory(); } } } @Override public MCItemStack getHelmet() { return new BukkitMCItemStack(this.i.getHelmet()); } @Override public MCItemStack getChestplate() { return new BukkitMCItemStack(this.i.getChestplate()); } @Override public MCItemStack getLeggings() { return new BukkitMCItemStack(this.i.getLeggings()); } @Override public MCItemStack getBoots() { return new BukkitMCItemStack(this.i.getBoots()); } @Override public MCItemStack getItemInOffHand() { return new BukkitMCItemStack(this.i.getItemInOffHand()); } @Override public int getHeldItemSlot() { return i.getHeldItemSlot(); } @Override public void setHeldItemSlot(int slot) { i.setHeldItemSlot(slot); } }