下面列出了怎么用net.minecraft.inventory.ContainerEnchantment的API类实例代码及写法,或者点击链接到github查看源代码。
private static void onContainerOpen(EntityPlayer player, Container container) {
if (container instanceof ContainerEnchantment) {
//wrap in try-catch because such kind of tweaks is subject to breaking
//don't let it crash game if some mod borked it
try {
int index = getEnchantmentSlotIndex((ContainerEnchantment) container);
if (index != -1) {
Slot previousLapisSlot = container.inventorySlots.get(index);
EnchantmentLapisSlot resultSlot = new EnchantmentLapisSlot(previousLapisSlot);
resultSlot.slotNumber = previousLapisSlot.slotNumber;
container.inventorySlots.set(index, resultSlot);
}
} catch (Throwable exception) {
GTLog.logger.warn("Failed to replace enchantment container slot", exception);
}
}
}
private static int getEnchantmentSlotIndex(ContainerEnchantment container) {
IInventory inventory = container.tableInventory;
for (int i = 0; i < container.inventorySlots.size(); i++) {
Slot slot = container.inventorySlots.get(i);
if (slot.isHere(inventory, EnchantmentLapisSlot.ENCHANTMENT_LAPIS_SLOT_INDEX)) return i;
}
return -1;
}