/* * This file is part of BukkitBridge. * * Copyright (c) 2012 Spout LLC <http://www.spout.org/> * BukkitBridge is licensed under the GNU General Public License. * * BukkitBridge is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * BukkitBridge is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.spout.bridge.bukkit.inventory; import org.bukkit.entity.HumanEntity; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.EntityEquipment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; import org.spout.api.inventory.Inventory; import org.spout.bridge.BukkitUtil; import org.spout.bridge.bukkit.entity.BridgePlayer; public class BridgeInventoryPlayer extends BridgeInventory implements PlayerInventory, EntityEquipment { private final org.spout.vanilla.component.entity.inventory.PlayerInventory playerInventory; public BridgeInventoryPlayer(Inventory handle, BridgePlayer holder) { super(handle, holder, "container.player", "Inventory", InventoryType.PLAYER); this.playerInventory = holder.getHandle().get(org.spout.vanilla.component.entity.inventory.PlayerInventory.class); } @Override public ItemStack[] getArmorContents() { ItemStack[] items = new ItemStack[4]; for (int i = 0; i < items.length; i++) { items[i] = BukkitUtil.fromItemStack(playerInventory.getArmor().get(i)); } return items; } @Override public ItemStack getHelmet() { return BukkitUtil.fromItemStack(playerInventory.getArmor().getHelmet()); } @Override public ItemStack getChestplate() { return BukkitUtil.fromItemStack(playerInventory.getArmor().getChestPlate()); } @Override public ItemStack getLeggings() { return BukkitUtil.fromItemStack(playerInventory.getArmor().getLeggings()); } @Override public ItemStack getBoots() { return BukkitUtil.fromItemStack(playerInventory.getArmor().getBoots()); } @Override public void setArmorContents(ItemStack[] itemStacks) { if (itemStacks == null) { itemStacks = new ItemStack[4]; } for (int i = 0; i < itemStacks.length; i++) { playerInventory.getArmor().set(i, BukkitUtil.toItemStack(itemStacks[i]), true); } } @Override public float getItemInHandDropChance() { return 1; } @Override public void setItemInHandDropChance(float v) { throw new UnsupportedOperationException(); } @Override public float getHelmetDropChance() { return 1; } @Override public void setHelmetDropChance(float v) { throw new UnsupportedOperationException(); } @Override public float getChestplateDropChance() { return 1; } @Override public void setChestplateDropChance(float v) { throw new UnsupportedOperationException(); } @Override public float getLeggingsDropChance() { return 1; } @Override public void setLeggingsDropChance(float v) { throw new UnsupportedOperationException(); } @Override public float getBootsDropChance() { return 1; } @Override public void setBootsDropChance(float v) { throw new UnsupportedOperationException(); } @Override public void setHelmet(ItemStack itemStack) { playerInventory.getArmor().setHelmet(BukkitUtil.toItemStack(itemStack)); } @Override public void setChestplate(ItemStack itemStack) { playerInventory.getArmor().setChestPlate(BukkitUtil.toItemStack(itemStack)); } @Override public void setLeggings(ItemStack itemStack) { playerInventory.getArmor().setLeggings(BukkitUtil.toItemStack(itemStack)); } @Override public void setBoots(ItemStack itemStack) { playerInventory.getArmor().setBoots(BukkitUtil.toItemStack(itemStack)); } @Override public ItemStack getItemInHand() { return BukkitUtil.fromItemStack(playerInventory.getHeldItem()); } @Override public void setItemInHand(ItemStack itemStack) { playerInventory.getQuickbar().set(playerInventory.getQuickbar().getSelectedSlot().getIndex(), BukkitUtil.toItemStack(itemStack), true); } @Override public int getHeldItemSlot() { return playerInventory.getQuickbar().getSelectedSlot().getIndex(); } @Override public void setHeldItemSlot(int i) { playerInventory.getQuickbar().setSelectedSlot(i); } @Override public int clear(int i, int i2) { throw new UnsupportedOperationException(); } @Override public ItemStack getItem(int i) { if (i >= handle.size()) { i -= handle.size(); if (i < 4) { return getArmorContents()[i]; } else { return null; } } return BukkitUtil.fromItemStack(handle.get(i)); } @Override public HumanEntity getHolder() { return (HumanEntity) holder; } }