package com.five35.minecraft.deathbox.inventorymanager;

import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

public interface InventoryManager {
	void clearSlots();

	@Nonnull
	List<ItemStack> fillSlots(final EntityPlayer player, final Map<Integer, ItemStack> slots);

	@Nonnull
	String getName();

	@Nonnull
	Map<Integer, ItemStack> getSlots(final EntityPlayer player);
}

@@ -256,160 +256,1127 @@
  %7B%0A%09
-void clearSlots();%0A%0A%09@Nonnull%0A%09List%3CItemStack%3E fillSlots(final EntityPlayer player, final Map%3CInteger, ItemStack%3E slots);%0A%0A%09@Nonnull%0A%09String getName();%0A
+/**%0A%09 * Empty all slots in the managed inventory.%0A%09 */%0A%09void clearSlots();%0A%0A%09/**%0A%09 * Attempt to fill the managed inventory using the supplied slots.%0A%09 *%0A%09 * Any item stacks which can't be added to the player's inventory (e.g.%0A%09 * because the target slot is already filled) should be returned as a list.%0A%09 *%0A%09 * @param player the player on whose inventory to operate%0A%09 * @param slots the slots with which to fill the player's inventory%0A%09 * @return a list of item stacks which could not be added to the player's%0A%09 *         inventory%0A%09 */%0A%09@Nonnull%0A%09List%3CItemStack%3E fillSlots(final EntityPlayer player, final Map%3CInteger, ItemStack%3E slots);%0A%0A%09/**%0A%09 * Get the name of this inventory manager.%0A%09 *%0A%09 * This name must uniquely identify the type of inventory being managed.%0A%09 * %22Source%5B%7CType%5D%22 is probably sufficient. (e.g. %22Minecraft%7CMain%22,%0A%09 * %22Baubles%22, or %22TCon%22)%0A%09 *%0A%09 * @return the name of this inventory manager%0A%09 */%0A%09@Nonnull%0A%09String getName();%0A%0A%09/**%0A%09 * Retrieve the contents of the managed inventory.%0A%09 *%0A%09 * @param player the player whose inventory should be retrieved%0A%09 * @return a map of slots -%3E item stacks%0A%09 */
 %0A%09@N

document the InventoryManager interface