TF-EssentialsX/Essentials/src/com/earth2me/essentials/craftbukkit/EnchantmentFix.java

66 lines
2.1 KiB
Java

package com.earth2me.essentials.craftbukkit;
import org.bukkit.craftbukkit.inventory.CraftInventory;
import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
public class EnchantmentFix
{
public static void setContents(Inventory inventory, ItemStack[] items)
{
CraftInventory cInventory = (CraftInventory)inventory;
if (cInventory.getContents().length != items.length)
{
throw new IllegalArgumentException("Invalid inventory size; expected " + cInventory.getContents().length);
}
net.minecraft.server.ItemStack[] mcItems = cInventory.getInventory().getContents();
for (int i = 0; i < items.length; i++)
{
ItemStack item = items[i];
if (item == null || item.getTypeId() <= 0)
{
mcItems[i] = null;
}
else
{
mcItems[i] = new net.minecraft.server.ItemStack(item.getTypeId(), item.getAmount(), item.getDurability());
new CraftItemStack(mcItems[i]).addUnsafeEnchantments(item.getEnchantments());
}
}
}
public static void setItem(Inventory inventory, int index, ItemStack item)
{
CraftInventory cInventory = (CraftInventory)inventory;
if (item == null)
{
cInventory.getInventory().setItem(index, null);
}
else
{
net.minecraft.server.ItemStack stack = new net.minecraft.server.ItemStack(item.getTypeId(), item.getAmount(), item.getDurability());
new CraftItemStack(stack).addUnsafeEnchantments(item.getEnchantments());
cInventory.getInventory().setItem(index, stack);
}
}
public static void setItemInHand(Inventory inventory, ItemStack item)
{
CraftInventoryPlayer cInventory = (CraftInventoryPlayer)inventory;
if (item == null)
{
cInventory.getInventory().setItem(cInventory.getInventory().itemInHandIndex, null);
}
else
{
net.minecraft.server.ItemStack stack = new net.minecraft.server.ItemStack(item.getTypeId(), item.getAmount(), item.getDurability());
new CraftItemStack(stack).addUnsafeEnchantments(item.getEnchantments());
cInventory.getInventory().setItem(cInventory.getInventory().itemInHandIndex, stack);
}
}
}