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);
}
}