Update AdvancedChestsAPI

This commit is contained in:
ceze88 2024-03-23 19:18:30 +01:00
parent ed93cd4db7
commit 3b18d7c165
2 changed files with 21 additions and 6 deletions

View File

@ -175,7 +175,7 @@
<dependency> <dependency>
<groupId>com.github.DeadSilenceIV</groupId> <groupId>com.github.DeadSilenceIV</groupId>
<artifactId>AdvancedChestsAPI</artifactId> <artifactId>AdvancedChestsAPI</artifactId>
<version>2.4</version> <version>3.2-BETA</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -2,10 +2,17 @@ package com.craftaro.epichoppers.containers.impl;
import com.craftaro.epichoppers.containers.CustomContainer; import com.craftaro.epichoppers.containers.CustomContainer;
import com.craftaro.epichoppers.containers.IContainer; import com.craftaro.epichoppers.containers.IContainer;
import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import us.lynuxcraft.deadsilenceiv.advancedchests.AdvancedChestsAPI; import us.lynuxcraft.deadsilenceiv.advancedchests.AdvancedChestsAPI;
import us.lynuxcraft.deadsilenceiv.advancedchests.chest.AdvancedChest; import us.lynuxcraft.deadsilenceiv.advancedchests.chest.AdvancedChest;
import us.lynuxcraft.deadsilenceiv.advancedchests.utils.inventory.InteractiveInventory;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class AdvancedChestImpl implements IContainer { public class AdvancedChestImpl implements IContainer {
@Override @Override
@ -14,7 +21,7 @@ public class AdvancedChestImpl implements IContainer {
} }
static class Container extends CustomContainer { static class Container extends CustomContainer {
private final AdvancedChest advancedChest; private final AdvancedChest<?, ?> advancedChest;
public Container(Block block) { public Container(Block block) {
this.advancedChest = AdvancedChestsAPI.getChestManager().getAdvancedChest(block.getLocation()); this.advancedChest = AdvancedChestsAPI.getChestManager().getAdvancedChest(block.getLocation());
@ -22,17 +29,25 @@ public class AdvancedChestImpl implements IContainer {
@Override @Override
public boolean addToContainer(ItemStack itemToMove) { public boolean addToContainer(ItemStack itemToMove) {
return AdvancedChestsAPI.addItemToChest(this.advancedChest, itemToMove); // return AdvancedChestsAPI.addItemToChest(this.advancedChest, itemToMove);
if (advancedChest != null) {
Optional<InteractiveInventory> inv = advancedChest.getSubInventories().stream().filter(subInventory -> subInventory.getBukkitInventory().firstEmpty() != -1).findFirst();
if (inv.isPresent()) {
return inv.get().getBukkitInventory().addItem(itemToMove).isEmpty();
}
}
return false;
} }
@Override @Override
public ItemStack[] getItems() { public ItemStack[] getItems() {
return this.advancedChest.getAllItems().toArray(new ItemStack[0]); // return this.advancedChest.getAllItems().toArray(new ItemStack[0]);
return this.advancedChest.getSubInventories().stream().map(subInventory -> subInventory.getBukkitInventory().getContents()).collect(Collectors.toList()).stream().flatMap(Arrays::stream).toArray(ItemStack[]::new);
} }
@Override @Override
public void removeFromContainer(ItemStack itemToMove, int amountToMove) { public void removeFromContainer(ItemStack itemToMove, int amountToMove) {
for (ItemStack item : this.advancedChest.getAllItems()) { for (ItemStack item : getItems()) {
if (item == null) { if (item == null) {
return; return;
} }
@ -41,7 +56,7 @@ public class AdvancedChestImpl implements IContainer {
item.setAmount(item.getAmount() - amountToMove); item.setAmount(item.getAmount() - amountToMove);
if (item.getAmount() <= 0) { if (item.getAmount() <= 0) {
this.advancedChest.getAllItems().remove(item); item.setType(Material.AIR);
} }
return; return;
} }