57 lines
1.8 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|