EpicHoppers/EpicHoppers-Plugin/src/main/java/com/songoda/epichoppers/containers/impl/AdvancedChestImplementation...

57 lines
1.8 KiB
Java

package com.songoda.epichoppers.containers.impl;
import com.songoda.epichoppers.containers.CustomContainer;
import com.songoda.epichoppers.containers.IContainer;
import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import us.lynuxcraft.deadsilenceiv.advancedchests.AdvancedChestsAPI;
import us.lynuxcraft.deadsilenceiv.advancedchests.chest.AdvancedChest;
public class AdvancedChestImplementation implements IContainer {
@Override
public CustomContainer getCustomContainer(Block block) {
return new Container(block);
}
static class Container extends CustomContainer {
private final AdvancedChest advancedChest;
public Container(Block block) {
super(block);
this.advancedChest = AdvancedChestsAPI.getChestManager().getAdvancedChest(block.getLocation());
}
@Override
public boolean addToContainer(ItemStack itemToMove) {
return AdvancedChestsAPI.addItemToChest(this.advancedChest, itemToMove);
}
@Override
public ItemStack[] getItems() {
return this.advancedChest.getAllItems().toArray(new ItemStack[0]);
}
@Override
public void removeFromContainer(ItemStack itemToMove, int amountToMove) {
for (ItemStack item : this.advancedChest.getAllItems()) {
if (item == null) {
return;
}
if (itemToMove.getType() == item.getType()) {
item.setAmount(item.getAmount() - amountToMove);
if (item.getAmount() <= 0)
this.advancedChest.getAllItems().remove(item);
return;
}
}
}
@Override
public boolean isContainer() {
return this.advancedChest != null;
}
}
}