diff --git a/README.md b/README.md
index 4a8c3fc2..09917135 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
[GitHub 仓库](https://github.com/ytdd9527/NetworksExpansion/tree/master) 的 jar 文件夹内
## 网络拓展2.1版本更新计划:
-- [ ] **0**.链式网络插口 (32 64 256 1024... 同量子存储的大小)
+完成 issues 里的所有功能
## 网络拓展
diff --git a/jar/NetworksExpansion v2.0.9-Alpha-21.jar b/jar/NetworksExpansion v2.0.9-Alpha-30.jar
similarity index 91%
rename from jar/NetworksExpansion v2.0.9-Alpha-21.jar
rename to jar/NetworksExpansion v2.0.9-Alpha-30.jar
index 933fe326..b7d99942 100644
Binary files a/jar/NetworksExpansion v2.0.9-Alpha-21.jar and b/jar/NetworksExpansion v2.0.9-Alpha-30.jar differ
diff --git a/lib/FluffyMachines.jar b/lib/FluffyMachines.jar
new file mode 100644
index 00000000..713cd457
Binary files /dev/null and b/lib/FluffyMachines.jar differ
diff --git a/pom.xml b/pom.xml
index 67a3ccd7..c5ca2994 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
4.0.0
com.ytdd9527.networksexpansion
NetworksExpansion
- 2.0.9-Alpha-23
+ 2.0.9-Alpha-30
@@ -264,5 +264,13 @@
0.2.6
compile
+
+
+ com.github.SlimefunGuguProject
+ FluffyMachines
+ 035fe56381
+ system
+ ${project.basedir}/lib/FluffyMachines.jar
+
\ No newline at end of file
diff --git a/src/main/java/com/ytdd9527/networksexpansion/implementation/items/ExpansionItemStacks.java b/src/main/java/com/ytdd9527/networksexpansion/implementation/items/ExpansionItemStacks.java
index 081a5b93..28f50216 100644
--- a/src/main/java/com/ytdd9527/networksexpansion/implementation/items/ExpansionItemStacks.java
+++ b/src/main/java/com/ytdd9527/networksexpansion/implementation/items/ExpansionItemStacks.java
@@ -127,6 +127,7 @@ public class ExpansionItemStacks {
"",
"目前支持:",
"无尽科技 - 存储单元",
+ "蓬松科技 - 蓬松桶",
"网络 - 量子存储",
TextUtil.colorPseudorandomString("网络拓展 - 网络抽屉")
);
@@ -142,6 +143,7 @@ public class ExpansionItemStacks {
"",
"目前支持:",
"无尽科技 - 存储单元",
+ "蓬松科技 - 蓬松桶",
"网络 - 量子存储",
TextUtil.colorPseudorandomString("网络拓展 - 网络抽屉")
);
diff --git a/src/main/java/com/ytdd9527/networksexpansion/implementation/items/machines/unit/CargoStorageUnit.java b/src/main/java/com/ytdd9527/networksexpansion/implementation/items/machines/unit/CargoStorageUnit.java
index d0a3ff87..943b2c39 100644
--- a/src/main/java/com/ytdd9527/networksexpansion/implementation/items/machines/unit/CargoStorageUnit.java
+++ b/src/main/java/com/ytdd9527/networksexpansion/implementation/items/machines/unit/CargoStorageUnit.java
@@ -47,6 +47,7 @@
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
+import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataType;
@@ -416,15 +417,20 @@ private static void addClickHandler(Location l) {
if (action.isRightClicked()) {
itemRequest.setAmount(take.getMaxStackSize());
} else if (action.isShiftClicked()) {
- itemRequest.setAmount(take.getMaxStackSize() * 36);
+ itemRequest.setAmount(take.getMaxStackSize()*36);
}
ItemStack requestedItemStack = data.requestItem(itemRequest);
if (requestedItemStack != null) {
- HashMap remnat = player.getInventory().addItem(requestedItemStack);
- remnat.values().stream().findFirst().ifPresent(leftOver -> {
- data.depositItemStack(leftOver, false);
- });
+ do {
+ int max = Math.min(requestedItemStack.getAmount(), requestedItemStack.getMaxStackSize());
+ ItemStack clone = StackUtils.getAsQuantity(requestedItemStack, max);
+ requestedItemStack.setAmount(requestedItemStack.getAmount() - max);
+ HashMap remnat = player.getInventory().addItem(clone);
+ remnat.values().stream().findFirst().ifPresent(leftOver -> {
+ data.depositItemStack(leftOver, false);
+ });
+ } while (requestedItemStack.getAmount() > 0);
}
} else {
for (ItemStack each : player.getInventory().getStorageContents()) {
diff --git a/src/main/java/io/github/sefiraat/networks/managers/SupportedPluginManager.java b/src/main/java/io/github/sefiraat/networks/managers/SupportedPluginManager.java
index e3930d76..0f29b6dd 100644
--- a/src/main/java/io/github/sefiraat/networks/managers/SupportedPluginManager.java
+++ b/src/main/java/io/github/sefiraat/networks/managers/SupportedPluginManager.java
@@ -5,23 +5,26 @@
import dev.rosewood.rosestacker.api.RoseStackerAPI;
import dev.rosewood.rosestacker.stack.StackedItem;
import io.github.sefiraat.networks.Networks;
+import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Item;
public class SupportedPluginManager {
+ @Getter
private static SupportedPluginManager instance;
- private final boolean infinityExpansion;
- private final boolean netheopoiesis;
- private final boolean slimeHud;
- private final boolean roseStacker;
- private final boolean wildStacker;
+ private final @Getter boolean infinityExpansion;
+ private final @Getter boolean fluffyMachines;
+ private final @Getter boolean netheopoiesis;
+ private final @Getter boolean slimeHud;
+ private final @Getter boolean roseStacker;
+ private final @Getter boolean wildStacker;
- private RoseStackerAPI roseStackerAPI;
+ private @Getter RoseStackerAPI roseStackerAPI;
// region First Tick Only Registrations
- private boolean mcMMO;
- private boolean wildChests;
+ private @Getter boolean mcMMO;
+ private @Getter boolean wildChests;
// endregion
@@ -29,6 +32,7 @@ public SupportedPluginManager() {
Preconditions.checkArgument(instance == null, "Cannot instantiate class");
instance = this;
this.infinityExpansion = Bukkit.getPluginManager().isPluginEnabled("InfinityExpansion");
+ this.fluffyMachines = Bukkit.getPluginManager().isPluginEnabled("FluffyMachines");
this.netheopoiesis = Bukkit.getPluginManager().isPluginEnabled("Netheopoiesis");
this.slimeHud = Bukkit.getPluginManager().isPluginEnabled("SlimeHUD");
@@ -44,10 +48,6 @@ public SupportedPluginManager() {
.runTaskLater(Networks.getInstance(), this::firstTickRegistrations, 1);
}
- public static SupportedPluginManager getInstance() {
- return instance;
- }
-
public static int getStackAmount(Item item) {
if (getInstance().isWildStacker()) {
return WildStackerAPI.getItemAmount(item);
@@ -76,36 +76,4 @@ private void firstTickRegistrations() {
this.wildChests = Bukkit.getPluginManager().isPluginEnabled("WildChests");
this.mcMMO = Bukkit.getPluginManager().isPluginEnabled("mcMMO");
}
-
- public boolean isInfinityExpansion() {
- return infinityExpansion;
- }
-
- public boolean isNetheopoiesis() {
- return netheopoiesis;
- }
-
- public boolean isSlimeHud() {
- return slimeHud;
- }
-
- public boolean isMcMMO() {
- return mcMMO;
- }
-
- public boolean isWildChests() {
- return wildChests;
- }
-
- public boolean isRoseStacker() {
- return roseStacker;
- }
-
- public RoseStackerAPI getRoseStackerAPI() {
- return roseStackerAPI;
- }
-
- public boolean isWildStacker() {
- return wildStacker;
- }
}
diff --git a/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java b/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java
index 9f6a1a55..8681c09f 100644
--- a/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java
+++ b/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java
@@ -6,8 +6,10 @@
import com.ytdd9527.networksexpansion.implementation.items.machines.networks.advanced.AdvancedGreedyBlock;
import com.ytdd9527.networksexpansion.implementation.items.machines.unit.CargoStorageUnit;
import com.ytdd9527.networksexpansion.utils.NetworksVersionedParticle;
+import io.github.mooy1.infinityexpansion.items.storage.StorageCache;
import io.github.mooy1.infinityexpansion.items.storage.StorageUnit;
import io.github.sefiraat.networks.Networks;
+import io.github.sefiraat.networks.network.barrel.FluffyBarrel;
import io.github.sefiraat.networks.network.barrel.InfinityBarrel;
import io.github.sefiraat.networks.network.barrel.NetworkStorage;
import io.github.sefiraat.networks.network.stackcaches.BarrelIdentity;
@@ -20,10 +22,12 @@
import io.github.sefiraat.networks.slimefun.network.NetworkQuantumStorage;
import io.github.sefiraat.networks.utils.StackUtils;
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem;
+import io.ncbpfluffybear.fluffymachines.items.Barrel;
import lombok.Getter;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import org.bukkit.Location;
+import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.inventory.ItemStack;
@@ -38,7 +42,6 @@
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-// TODO: support fluffy barrels
@SuppressWarnings("unused")
public class NetworkRoot extends NetworkNode {
@Getter
@@ -564,9 +567,17 @@ public Set getBarrels() {
barrelSet.add(infinityBarrel);
}
continue;
- }
-
- if (slimefunItem instanceof NetworkQuantumStorage) {
+ } else if (Networks.getSupportedPluginManager().isFluffyMachines() && slimefunItem instanceof Barrel barrel) {
+ final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
+ if (menu == null) {
+ continue;
+ }
+ final FluffyBarrel fluffyBarrel = getFluffyBarrel(menu, barrel);
+ if (fluffyBarrel != null) {
+ barrelSet.add(fluffyBarrel);
+ }
+ continue;
+ } else if (slimefunItem instanceof NetworkQuantumStorage) {
final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
if (menu == null) {
continue;
@@ -624,6 +635,9 @@ public Map getCargoStorageUnitDatas() {
private InfinityBarrel getInfinityBarrel(@Nonnull BlockMenu blockMenu, @Nonnull StorageUnit storageUnit) {
final ItemStack itemStack = blockMenu.getItemInSlot(16);
final var data = StorageCacheUtils.getBlock(blockMenu.getLocation());
+ if (data == null) {
+ return null;
+ }
final String storedString = data.getData("stored");
if (storedString == null) {
@@ -636,7 +650,8 @@ private InfinityBarrel getInfinityBarrel(@Nonnull BlockMenu blockMenu, @Nonnull
return null;
}
- final io.github.mooy1.infinityexpansion.items.storage.StorageCache cache = storageUnit.getCache(blockMenu.getLocation());
+
+ final StorageCache cache = storageUnit.getCache(blockMenu.getLocation());
if (cache == null) {
return null;
@@ -653,6 +668,39 @@ private InfinityBarrel getInfinityBarrel(@Nonnull BlockMenu blockMenu, @Nonnull
);
}
+ @Nullable
+ private FluffyBarrel getFluffyBarrel(@Nonnull BlockMenu blockMenu, @Nonnull Barrel barrel) {
+ Block block = blockMenu.getBlock();
+ ItemStack itemStack;
+ try {
+ itemStack = barrel.getStoredItem(block);
+ } catch (NullPointerException ignored) {
+ return null;
+ }
+
+ if (itemStack == null || itemStack.getType().isAir()) {
+ return null;
+ }
+
+ final ItemStack clone = itemStack.clone();
+
+ int stored = barrel.getStored(block);
+
+ if (stored <= 0) {
+ return null;
+ }
+ int limit = barrel.getCapacity(block);
+ boolean voidExcess = Boolean.parseBoolean(StorageCacheUtils.getData(blockMenu.getLocation(), "trash"));
+
+ return new FluffyBarrel(
+ blockMenu.getLocation(),
+ clone,
+ stored,
+ limit,
+ voidExcess
+ );
+ }
+
@Nullable
private NetworkStorage getNetworkStorage(@Nonnull BlockMenu blockMenu) {
@@ -770,8 +818,6 @@ public synchronized ItemStack getItemStackAsync(@Nonnull ItemRequest request) {
ItemStack stackToReturn = null;
if (request.getAmount() <= 0) {
- stackToReturn = request.getItemStack().clone();
- stackToReturn.setAmount(request.getAmount());
progressing = false;
notifyAll();
return stackToReturn;
@@ -787,6 +833,7 @@ public synchronized ItemStack getItemStackAsync(@Nonnull ItemRequest request) {
}
boolean infinity = barrelIdentity instanceof InfinityBarrel;
+ boolean fluffy = barrelIdentity instanceof FluffyBarrel;
final ItemStack fetched = barrelIdentity.requestItem(request);
if (fetched == null || fetched.getType().isAir() || (infinity && fetched.getAmount() == 1)) {
continue;
@@ -798,7 +845,7 @@ public synchronized ItemStack getItemStackAsync(@Nonnull ItemRequest request) {
stackToReturn.setAmount(0);
}
- final int preserveAmount = infinity ? fetched.getAmount() - 1 : fetched.getAmount();
+ final int preserveAmount = (infinity || fluffy) ? fetched.getAmount() - 1 : fetched.getAmount();
if (request.getAmount() <= preserveAmount) {
stackToReturn.setAmount(stackToReturn.getAmount() + request.getAmount());
@@ -1645,8 +1692,7 @@ public Set getInputAbleBarrels() {
final SlimefunItem slimefunItem = StorageCacheUtils.getSfItem(testLocation);
- if (Networks.getSupportedPluginManager()
- .isInfinityExpansion() && slimefunItem instanceof StorageUnit unit) {
+ if (Networks.getSupportedPluginManager().isInfinityExpansion() && slimefunItem instanceof StorageUnit unit) {
final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
if (menu == null) {
continue;
@@ -1657,7 +1703,17 @@ public Set getInputAbleBarrels() {
}
continue;
}
-
+ if (Networks.getSupportedPluginManager().isFluffyMachines() && slimefunItem instanceof Barrel barrel) {
+ final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
+ if (menu == null) {
+ continue;
+ }
+ final FluffyBarrel fluffyBarrel = getFluffyBarrel(menu, barrel);
+ if (fluffyBarrel != null) {
+ barrelSet.add(fluffyBarrel);
+ }
+ continue;
+ }
if (slimefunItem instanceof NetworkQuantumStorage) {
final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
if (menu == null) {
@@ -1704,8 +1760,7 @@ public Set getOutputAbleBarrels() {
final SlimefunItem slimefunItem = StorageCacheUtils.getSfItem(testLocation);
- if (Networks.getSupportedPluginManager()
- .isInfinityExpansion() && slimefunItem instanceof StorageUnit unit) {
+ if (Networks.getSupportedPluginManager().isInfinityExpansion() && slimefunItem instanceof StorageUnit unit) {
final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
if (menu == null) {
continue;
@@ -1716,7 +1771,17 @@ public Set getOutputAbleBarrels() {
}
continue;
}
-
+ if (Networks.getSupportedPluginManager().isFluffyMachines() && slimefunItem instanceof Barrel barrel) {
+ final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
+ if (menu == null) {
+ continue;
+ }
+ final FluffyBarrel fluffyBarrel = getFluffyBarrel(menu, barrel);
+ if (fluffyBarrel != null) {
+ barrelSet.add(fluffyBarrel);
+ }
+ continue;
+ }
if (slimefunItem instanceof NetworkQuantumStorage) {
final BlockMenu menu = StorageCacheUtils.getMenu(testLocation);
if (menu == null) {
diff --git a/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelCore.java b/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelCore.java
index fc2fdb64..0ea070f1 100644
--- a/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelCore.java
+++ b/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelCore.java
@@ -17,7 +17,7 @@ default void depositItemStack(ItemStack itemToDeposit) {
void depositItemStack(ItemStack[] itemsToDeposit);
- int getInputSlot();
+ int[] getInputSlot();
- int getOutputSlot();
+ int[] getOutputSlot();
}
diff --git a/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelType.java b/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelType.java
index d627562b..8cbcc33b 100644
--- a/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelType.java
+++ b/src/main/java/io/github/sefiraat/networks/network/barrel/BarrelType.java
@@ -4,6 +4,5 @@ public enum BarrelType {
NETWORKS,
INFINITY,
FLUFFY,
- STORAGE_UNIT,
UNKNOWN
}
diff --git a/src/main/java/io/github/sefiraat/networks/network/barrel/FluffyBarrel.java b/src/main/java/io/github/sefiraat/networks/network/barrel/FluffyBarrel.java
new file mode 100644
index 00000000..b5d45953
--- /dev/null
+++ b/src/main/java/io/github/sefiraat/networks/network/barrel/FluffyBarrel.java
@@ -0,0 +1,105 @@
+package io.github.sefiraat.networks.network.barrel;
+
+import com.xzavier0722.mc.plugin.slimefun4.storage.util.StorageCacheUtils;
+import io.github.sefiraat.networks.network.stackcaches.BarrelIdentity;
+import io.github.sefiraat.networks.network.stackcaches.ItemRequest;
+import io.github.sefiraat.networks.utils.StackUtils;
+import io.ncbpfluffybear.fluffymachines.items.Barrel;
+import lombok.Getter;
+import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
+import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
+import org.bukkit.Location;
+import org.bukkit.inventory.ItemStack;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+@Getter
+public class FluffyBarrel extends BarrelIdentity {
+ int limit;
+ boolean voidExcess;
+
+ public FluffyBarrel(Location location, ItemStack itemStack, int amount, int limit, boolean voidExcess) {
+ super(location, itemStack, amount, BarrelType.FLUFFY);
+ this.limit = limit;
+ this.voidExcess = voidExcess;
+ }
+
+ @Nullable
+ @Override
+ public ItemStack requestItem(@Nonnull ItemRequest itemRequest) {
+ BlockMenu menu = StorageCacheUtils.getMenu(getLocation());
+ if (menu == null) {
+ return null;
+ }
+
+ int stored = (int) getAmount();
+ if (stored <= 1) {
+ return null;
+ }
+ if (StackUtils.itemsMatch(getItemStack(), itemRequest.getItemStack())) {
+ int need = itemRequest.getAmount();
+ int have = stored - 1;
+ int take = Math.min(need, have);
+ if (take <= 0) {
+ return null;
+ }
+ setStored(getLocation(), stored - take);
+ Barrel barrel = (Barrel) StorageCacheUtils.getSfItem(getLocation());
+ if (barrel != null) {
+ barrel.updateMenu(getLocation().getBlock(), menu, true, getLimit());
+ }
+
+ return StackUtils.getAsQuantity(getItemStack(), take);
+ }
+
+ return null;
+ }
+
+ public void setStored(Location location, int amount) {
+ StorageCacheUtils.setData(location, "stored", String.valueOf(amount));
+ setAmount(amount);
+ }
+
+ @Override
+ public void depositItemStack(ItemStack[] itemsToDeposit) {
+ int received = 0;
+ for (ItemStack item : itemsToDeposit) {
+ if (StackUtils.itemsMatch(item, getItemStack())) {
+ int maxCanReceive = (int) (getLimit() - getAmount());
+ if (voidExcess && maxCanReceive == 0) {
+ item.setAmount(0);
+ continue;
+ }
+ int canReceive = Math.min(item.getAmount(), maxCanReceive);
+ item.setAmount(item.getAmount() - canReceive);
+ received += canReceive;
+ }
+ }
+
+ setStored(getLocation(), (int) (getAmount() + received));
+ Barrel barrel = (Barrel) StorageCacheUtils.getSfItem(getLocation());
+ BlockMenu menu = StorageCacheUtils.getMenu(getLocation());
+ if (barrel != null) {
+ barrel.updateMenu(getLocation().getBlock(), menu, true, getLimit());
+ }
+ }
+
+ @Override
+ public int[] getInputSlot() {
+ BlockMenu menu = StorageCacheUtils.getMenu(getLocation());
+ if (menu == null) {
+ return new int[0];
+ }
+ return menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.INSERT, null);
+ }
+
+ @Override
+ public int[] getOutputSlot() {
+ BlockMenu menu = StorageCacheUtils.getMenu(getLocation());
+ if (menu == null) {
+ return new int[0];
+ }
+ return menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null);
+ }
+}
diff --git a/src/main/java/io/github/sefiraat/networks/network/barrel/InfinityBarrel.java b/src/main/java/io/github/sefiraat/networks/network/barrel/InfinityBarrel.java
index edf49868..41d322ac 100644
--- a/src/main/java/io/github/sefiraat/networks/network/barrel/InfinityBarrel.java
+++ b/src/main/java/io/github/sefiraat/networks/network/barrel/InfinityBarrel.java
@@ -23,12 +23,11 @@ public InfinityBarrel(Location location, ItemStack itemStack, long amount, Stora
this.cache = cache;
}
- @SuppressWarnings("deprecation")
@Nullable
@Override
public ItemStack requestItem(@Nonnull ItemRequest itemRequest) {
BlockMenu blockMenu = StorageCacheUtils.getMenu(this.getLocation());
- return blockMenu == null ? null : blockMenu.getItemInSlot(this.getOutputSlot());
+ return blockMenu == null ? null : blockMenu.getItemInSlot(this.getOutputSlot()[0]);
}
@Override
@@ -37,12 +36,12 @@ public void depositItemStack(ItemStack[] itemsToDeposit) {
}
@Override
- public int getInputSlot() {
- return 10;
+ public int[] getInputSlot() {
+ return new int[]{10};
}
@Override
- public int getOutputSlot() {
- return 16;
+ public int[] getOutputSlot() {
+ return new int[]{16};
}
}
diff --git a/src/main/java/io/github/sefiraat/networks/network/barrel/NetworkStorage.java b/src/main/java/io/github/sefiraat/networks/network/barrel/NetworkStorage.java
index 47d5d018..e4caf446 100644
--- a/src/main/java/io/github/sefiraat/networks/network/barrel/NetworkStorage.java
+++ b/src/main/java/io/github/sefiraat/networks/network/barrel/NetworkStorage.java
@@ -49,12 +49,12 @@ public void depositItemStack(ItemStack[] itemsToDeposit) {
@Override
- public int getInputSlot() {
- return NetworkQuantumStorage.INPUT_SLOT;
+ public int[] getInputSlot() {
+ return new int[]{NetworkQuantumStorage.INPUT_SLOT};
}
@Override
- public int getOutputSlot() {
- return NetworkQuantumStorage.OUTPUT_SLOT;
+ public int[] getOutputSlot() {
+ return new int[]{NetworkQuantumStorage.OUTPUT_SLOT};
}
}
diff --git a/src/main/java/io/github/sefiraat/networks/network/stackcaches/BarrelIdentity.java b/src/main/java/io/github/sefiraat/networks/network/stackcaches/BarrelIdentity.java
index 0ea42730..37327fe2 100644
--- a/src/main/java/io/github/sefiraat/networks/network/stackcaches/BarrelIdentity.java
+++ b/src/main/java/io/github/sefiraat/networks/network/stackcaches/BarrelIdentity.java
@@ -2,16 +2,20 @@
import io.github.sefiraat.networks.network.barrel.BarrelCore;
import io.github.sefiraat.networks.network.barrel.BarrelType;
+import lombok.Getter;
+import lombok.Setter;
import org.bukkit.Location;
import org.bukkit.inventory.ItemStack;
import javax.annotation.ParametersAreNonnullByDefault;
+@Getter
+@Setter
public abstract class BarrelIdentity extends ItemStackCache implements BarrelCore {
- private final Location location;
- private final long amount;
- private final BarrelType type;
+ private Location location;
+ private long amount;
+ private BarrelType type;
@ParametersAreNonnullByDefault
protected BarrelIdentity(Location location, ItemStack itemStack, long amount, BarrelType type) {
@@ -20,16 +24,4 @@ protected BarrelIdentity(Location location, ItemStack itemStack, long amount, Ba
this.amount = amount;
this.type = type;
}
-
- public Location getLocation() {
- return this.location;
- }
-
- public long getAmount() {
- return this.amount;
- }
-
- public BarrelType getType() {
- return this.type;
- }
}
diff --git a/src/main/java/io/github/sefiraat/networks/slimefun/NetworksSlimefunItemStacks.java b/src/main/java/io/github/sefiraat/networks/slimefun/NetworksSlimefunItemStacks.java
index 02d88b81..1931bca1 100644
--- a/src/main/java/io/github/sefiraat/networks/slimefun/NetworksSlimefunItemStacks.java
+++ b/src/main/java/io/github/sefiraat/networks/slimefun/NetworksSlimefunItemStacks.java
@@ -226,6 +226,7 @@ public class NetworksSlimefunItemStacks {
"",
"目前支持:",
"无尽科技 - 存储单元",
+ "蓬松科技 - 蓬松桶",
"网络 - 量子存储",
TextUtil.colorPseudorandomString("网络拓展 - 网络抽屉")
);
diff --git a/src/main/java/io/github/sefiraat/networks/utils/StackUtils.java b/src/main/java/io/github/sefiraat/networks/utils/StackUtils.java
index 2d8c721e..4a08938d 100644
--- a/src/main/java/io/github/sefiraat/networks/utils/StackUtils.java
+++ b/src/main/java/io/github/sefiraat/networks/utils/StackUtils.java
@@ -43,12 +43,15 @@
import java.util.Optional;
@UtilityClass
-// @SuppressWarnings("deprecation")
+@SuppressWarnings("deprecation")
public class StackUtils {
MinecraftVersion MC_VERSION = Slimefun.getMinecraftVersion();
@Nonnull
- public static ItemStack getAsQuantity(@Nonnull ItemStack itemStack, int amount) {
+ public static ItemStack getAsQuantity(@Nullable ItemStack itemStack, int amount) {
+ if (itemStack == null) {
+ return new ItemStack(Material.AIR);
+ }
ItemStack clone = itemStack.clone();
clone.setAmount(amount);
return clone;
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index c5adf820..854c63b0 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -10,6 +10,7 @@ depend:
softdepend:
- GuizhanLibPlugin
- InfinityExpansion
+ - FluffyMachines
- Netheopoiesis
- SlimeHUD
- WildChests