Skip to content

Commit 3e54914

Browse files
committed
fix: dupe bug with controller
Remainders weren't being accounted for when inserting to player inv. Fixes #3544
1 parent 456e5bd commit 3e54914

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java

+14-9
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
import net.minecraftforge.common.ForgeHooks;
2424
import net.minecraftforge.event.ForgeEventFactory;
2525
import net.minecraftforge.items.ItemHandlerHelper;
26+
import net.minecraftforge.items.wrapper.InvWrapper;
27+
import net.minecraftforge.items.wrapper.PlayerInvWrapper;
28+
import net.minecraftforge.items.wrapper.PlayerMainInvWrapper;
2629

2730
import javax.annotation.Nullable;
2831
import java.util.*;
@@ -123,16 +126,18 @@ public void onCraftedShift(INetworkAwareGrid grid, Player player) {
123126
}
124127

125128
for (ItemStack craftedItem : craftedItemsList) {
126-
if (!player.getInventory().add(craftedItem.copy())) {
127-
ItemStack remainder = craftedItem;
128-
129-
if (useNetwork) {
130-
remainder = network.insertItem(craftedItem, craftedItem.getCount(), Action.PERFORM);
131-
}
129+
ItemStack remainder = ItemHandlerHelper.insertItem(
130+
new PlayerMainInvWrapper(player.getInventory()),
131+
craftedItem.copy(),
132+
false
133+
);
134+
135+
if (!remainder.isEmpty() && useNetwork) {
136+
remainder = network.insertItem(remainder, remainder.getCount(), Action.PERFORM);
137+
}
132138

133-
if (!remainder.isEmpty()) {
134-
Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), remainder);
135-
}
139+
if (!remainder.isEmpty()) {
140+
Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), remainder);
136141
}
137142
}
138143

0 commit comments

Comments
 (0)