77 lines
4.3 KiB
Diff
77 lines
4.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Helvetica Volubi <suisuroru@blue-millennium.fun>
|
|
Date: Wed, 13 Aug 2025 22:23:46 +0800
|
|
Subject: [PATCH] Leaves: Item overstack util
|
|
|
|
Co-authored by: violetc <58360096+s-yh-china@users.noreply.github.com>
|
|
As a part of : Leaves (https://github.com/LeavesMC/Leaves/blob/d93e9766d3797d130f66179e70a1b374c546fef7/leaves-server/src/main/java/org/leavesmc/leaves/util/ItemOverstackUtils.java)
|
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|
|
|
diff --git a/src/main/java/org/leavesmc/leaves/util/ItemOverstackUtils.java b/src/main/java/org/leavesmc/leaves/util/ItemOverstackUtils.java
|
|
index 112dc08eb62c4c50fb4859f51a366cedf027ca00..b5f661fd20b382725ad117c56ce2c94ded32b1b7 100644
|
|
--- a/src/main/java/org/leavesmc/leaves/util/ItemOverstackUtils.java
|
|
+++ b/src/main/java/org/leavesmc/leaves/util/ItemOverstackUtils.java
|
|
@@ -17,6 +17,7 @@
|
|
|
|
package org.leavesmc.leaves.util;
|
|
|
|
+import fun.bm.lophine.config.modules.function.ContainerExpansionConfig;
|
|
import io.papermc.paper.datacomponent.DataComponentTypes;
|
|
import io.papermc.paper.datacomponent.item.ItemEnchantments;
|
|
import net.minecraft.core.component.DataComponents;
|
|
@@ -135,9 +136,9 @@ public class ItemOverstackUtils {
|
|
|
|
private static class ShulkerBox implements ItemUtil {
|
|
public static boolean shulkerBoxCheck(@NotNull ItemStack stack1, @NotNull ItemStack stack2) {
|
|
- /*if (LeavesConfig.modify.shulkerBox.sameNbtStackable) {
|
|
+ if (ContainerExpansionConfig.nbtShulkerStackable) {
|
|
return Objects.equals(stack1.getComponents(), stack2.getComponents());
|
|
- }*/ // Luminol
|
|
+ }
|
|
return shulkerBoxNoItem(stack1) && shulkerBoxNoItem(stack2) && Objects.equals(stack1.getComponents(), stack2.getComponents());
|
|
}
|
|
|
|
@@ -147,16 +148,15 @@ public class ItemOverstackUtils {
|
|
|
|
@Override
|
|
public boolean isEnabled() {
|
|
- // return LeavesConfig.modify.shulkerBox.stackableShulkerBoxes > 1; // Luminol
|
|
- return false; // Luminol
|
|
+ return ContainerExpansionConfig.shulkerCount > 1;
|
|
}
|
|
|
|
@Override
|
|
public boolean tryStackItems(ItemEntity self, ItemEntity other) {
|
|
ItemStack selfStack = self.getItem();
|
|
if (!isEnabled() ||
|
|
- !(selfStack.getItem() instanceof net.minecraft.world.item.BlockItem blockItem) ||
|
|
- !(blockItem.getBlock() instanceof net.minecraft.world.level.block.ShulkerBoxBlock)
|
|
+ !(selfStack.getItem() instanceof BlockItem blockItem) ||
|
|
+ !(blockItem.getBlock() instanceof ShulkerBoxBlock)
|
|
) {
|
|
return false;
|
|
}
|
|
@@ -164,8 +164,8 @@ public class ItemOverstackUtils {
|
|
ItemStack otherStack = other.getItem();
|
|
if (selfStack.getItem() == otherStack.getItem()
|
|
&& shulkerBoxCheck(selfStack, otherStack)
|
|
- && selfStack.getCount() != /*org.leavesmc.leaves.LeavesConfig.modify.shulkerBox.stackableShulkerBoxes*/ 1) { // Luminol
|
|
- int amount = Math.min(otherStack.getCount(), /*org.leavesmc.leaves.LeavesConfig.modify.shulkerBox.stackableShulkerBoxes*/1 - selfStack.getCount()); // Luminol
|
|
+ && selfStack.getCount() != ContainerExpansionConfig.shulkerCount) {
|
|
+ int amount = Math.min(otherStack.getCount(), ContainerExpansionConfig.shulkerCount - selfStack.getCount());
|
|
|
|
selfStack.grow(amount);
|
|
self.setItem(selfStack);
|
|
@@ -187,9 +187,8 @@ public class ItemOverstackUtils {
|
|
@Override
|
|
public int getMaxServerStackCount(ItemStack stack) {
|
|
if (isEnabled() && stack.getItem() instanceof BlockItem bi &&
|
|
- bi.getBlock() instanceof ShulkerBoxBlock && (/*LeavesConfig.modify.shulkerBox.sameNbtStackable ||*/ shulkerBoxNoItem(stack))) { // Luminol
|
|
- // return LeavesConfig.modify.shulkerBox.stackableShulkerBoxes; // Luminol
|
|
- return 1; // Luminol
|
|
+ bi.getBlock() instanceof ShulkerBoxBlock && (ContainerExpansionConfig.nbtShulkerStackable || shulkerBoxNoItem(stack))) {
|
|
+ return ContainerExpansionConfig.shulkerCount;
|
|
}
|
|
return -1;
|
|
}
|