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