import { useBridge } from 'scriptcraft-core'; import { ItemStack } from './item'; import { JavaObjectWrapper } from './core'; /** * Inventory */ export class Inventory extends JavaObjectWrapper { /** * Create Inventory Wrapper From Java Object * @param object Java Object */ constructor(javaObject: JavaObject | JavaObjectWrapper) { super(javaObject); this.assertValidJavaObject('Inventory'); } /** * Get Size * @returns Inventory Size */ size(): number { return useBridge('Inventory.size', this.getJavaObject()) as number; } /** * Get Maximum Stack Size * @returns Inventory Maximum Stack Size */ getMaxStackSize(): number { return useBridge('Inventory.getMaxStackSize', this.getJavaObject()) as number; } /** * Get Stack In Slot * @param slot Inventory Slot * @returns Item Stack */ get(slot: number): ItemStack { const obj = useBridge('Inventory.get', this.getJavaObject(), slot) as JavaObject; if (obj !== null) { return new ItemStack(obj); } else { return null; } } /** * Take Item From Slot * @param slot Inventory Slot * @param count Amount To Take * @returns Item Stack */ take(slot: number, count: number): ItemStack { const obj = useBridge('Inventory.take', this.getJavaObject(), slot, count) as JavaObject; if (obj !== null) { return new ItemStack(obj); } else { return null; } } /** * Set Item In Slot * @param slot Inventory Slot * @param item Item Stack */ set(slot: number, item: ItemStack): void { useBridge('Inventory.set', this.getJavaObject(), slot, item.getJavaObject()); } }