Skip to content

Commit 954201a

Browse files
committed
Fix some items being added to the creative search tab multiple times
1 parent 934909f commit 954201a

File tree

11 files changed

+28
-26
lines changed

11 files changed

+28
-26
lines changed

src/generators/java/mekanism/generators/common/item/ItemHohlraum.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mekanism.generators.common.item;
22

33
import java.util.List;
4+
import java.util.function.Consumer;
45
import mekanism.api.chemical.gas.GasStack;
56
import mekanism.api.chemical.gas.IGasHandler;
67
import mekanism.api.text.EnumColor;
@@ -12,13 +13,10 @@
1213
import mekanism.generators.common.GeneratorsLang;
1314
import mekanism.generators.common.registries.GeneratorsGases;
1415
import net.minecraft.network.chat.Component;
15-
import net.minecraft.world.item.CreativeModeTab;
1616
import net.minecraft.world.item.Item;
1717
import net.minecraft.world.item.ItemStack;
1818
import net.minecraft.world.item.TooltipFlag;
19-
import net.minecraft.world.level.Level;
2019
import org.jetbrains.annotations.NotNull;
21-
import org.jetbrains.annotations.Nullable;
2220

2321
public class ItemHohlraum extends Item implements ICustomCreativeTabContents {
2422

@@ -62,7 +60,7 @@ public int getBarColor(@NotNull ItemStack stack) {
6260
}
6361

6462
@Override
65-
public void addItems(CreativeModeTab.Output tabOutput) {
63+
public void addItems(Consumer<ItemStack> tabOutput) {
6664
tabOutput.accept(ChemicalUtil.getFilledVariant(new ItemStack(this), GeneratorsGases.FUSION_FUEL));
6765
}
6866
}

src/main/java/mekanism/common/item/ItemEnergized.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package mekanism.common.item;
22

33
import java.util.List;
4+
import java.util.function.Consumer;
45
import mekanism.common.config.MekanismConfig;
56
import mekanism.common.registration.impl.CreativeTabDeferredRegister.ICustomCreativeTabContents;
67
import mekanism.common.util.StorageUtils;
78
import net.minecraft.network.chat.Component;
8-
import net.minecraft.world.item.CreativeModeTab;
99
import net.minecraft.world.item.Item;
1010
import net.minecraft.world.item.ItemStack;
1111
import net.minecraft.world.item.TooltipFlag;
@@ -39,7 +39,7 @@ public void appendHoverText(@NotNull ItemStack stack, @NotNull Item.TooltipConte
3939
}
4040

4141
@Override
42-
public void addItems(CreativeModeTab.Output tabOutput) {
42+
public void addItems(Consumer<ItemStack> tabOutput) {
4343
tabOutput.accept(StorageUtils.getFilledEnergyVariant(new ItemStack(this)));
4444
}
4545

src/main/java/mekanism/common/item/block/ItemBlockEnergyCube.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import mekanism.common.util.text.EnergyDisplay;
2626
import net.minecraft.Util;
2727
import net.minecraft.network.chat.Component;
28-
import net.minecraft.world.item.CreativeModeTab;
2928
import net.minecraft.world.item.Item;
3029
import net.minecraft.world.item.ItemStack;
3130
import net.minecraft.world.item.TooltipFlag;
@@ -93,7 +92,7 @@ public int getBarColor(@NotNull ItemStack stack) {
9392
}
9493

9594
@Override
96-
public void addItems(CreativeModeTab.Output tabOutput) {
95+
public void addItems(Consumer<ItemStack> tabOutput) {
9796
EnergyCubeTier tier = getTier();
9897
if (tier == EnergyCubeTier.CREATIVE) {
9998
//Add the empty and charged variants

src/main/java/mekanism/common/item/gear/ItemCanteen.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mekanism.common.item.gear;
22

33
import java.util.List;
4+
import java.util.function.Consumer;
45
import mekanism.common.MekanismLang;
56
import mekanism.common.capabilities.Capabilities;
67
import mekanism.common.config.MekanismConfig;
@@ -13,7 +14,6 @@
1314
import net.minecraft.world.InteractionResultHolder;
1415
import net.minecraft.world.entity.LivingEntity;
1516
import net.minecraft.world.entity.player.Player;
16-
import net.minecraft.world.item.CreativeModeTab;
1717
import net.minecraft.world.item.Item;
1818
import net.minecraft.world.item.ItemStack;
1919
import net.minecraft.world.item.Rarity;
@@ -25,7 +25,6 @@
2525
import net.neoforged.neoforge.fluids.capability.IFluidHandler.FluidAction;
2626
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem;
2727
import org.jetbrains.annotations.NotNull;
28-
import org.jetbrains.annotations.Nullable;
2928

3029
public class ItemCanteen extends Item implements ICustomCreativeTabContents {
3130

@@ -54,7 +53,7 @@ public int getBarColor(@NotNull ItemStack stack) {
5453
}
5554

5655
@Override
57-
public void addItems(CreativeModeTab.Output tabOutput) {
56+
public void addItems(Consumer<ItemStack> tabOutput) {
5857
tabOutput.accept(FluidUtils.getFilledVariant(new ItemStack(this), MekanismFluids.NUTRITIONAL_PASTE.getFluid()));
5958
}
6059

src/main/java/mekanism/common/item/gear/ItemElectricBow.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mekanism.common.item.gear;
22

33
import java.util.List;
4+
import java.util.function.Consumer;
45
import mekanism.api.Action;
56
import mekanism.api.AutomationType;
67
import mekanism.api.energy.IEnergyContainer;
@@ -26,7 +27,6 @@
2627
import net.minecraft.world.entity.projectile.AbstractArrow;
2728
import net.minecraft.world.item.ArrowItem;
2829
import net.minecraft.world.item.BowItem;
29-
import net.minecraft.world.item.CreativeModeTab;
3030
import net.minecraft.world.item.Item;
3131
import net.minecraft.world.item.ItemStack;
3232
import net.minecraft.world.item.Items;
@@ -180,7 +180,7 @@ public int getBarColor(@NotNull ItemStack stack) {
180180
}
181181

182182
@Override
183-
public void addItems(CreativeModeTab.Output tabOutput) {
183+
public void addItems(Consumer<ItemStack> tabOutput) {
184184
tabOutput.accept(StorageUtils.getFilledEnergyVariant(new ItemStack(this)));
185185
}
186186

src/main/java/mekanism/common/item/gear/ItemFlamethrower.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import net.minecraft.world.entity.EquipmentSlot;
4141
import net.minecraft.world.entity.LivingEntity;
4242
import net.minecraft.world.entity.player.Player;
43-
import net.minecraft.world.item.CreativeModeTab;
4443
import net.minecraft.world.item.Item;
4544
import net.minecraft.world.item.ItemStack;
4645
import net.minecraft.world.item.Rarity;
@@ -151,7 +150,7 @@ public int getBarColor(@NotNull ItemStack stack) {
151150
}
152151

153152
@Override
154-
public void addItems(CreativeModeTab.Output tabOutput) {
153+
public void addItems(Consumer<ItemStack> tabOutput) {
155154
tabOutput.accept(ChemicalUtil.getFilledVariant(new ItemStack(this), MekanismGases.HYDROGEN));
156155
}
157156

src/main/java/mekanism/common/item/gear/ItemFreeRunners.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import net.minecraft.world.entity.player.Player;
3434
import net.minecraft.world.item.ArmorItem;
3535
import net.minecraft.world.item.ArmorMaterial;
36-
import net.minecraft.world.item.CreativeModeTab;
3736
import net.minecraft.world.item.Item;
3837
import net.minecraft.world.item.ItemStack;
3938
import net.minecraft.world.item.Rarity;
@@ -66,7 +65,7 @@ public void appendHoverText(@NotNull ItemStack stack, @NotNull Item.TooltipConte
6665
}
6766

6867
@Override
69-
public void addItems(CreativeModeTab.Output tabOutput) {
68+
public void addItems(Consumer<ItemStack> tabOutput) {
7069
tabOutput.accept(StorageUtils.getFilledEnergyVariant(new ItemStack(this)));
7170
}
7271

src/main/java/mekanism/common/item/gear/ItemGasArmor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mekanism.common.item.gear;
22

33
import java.util.List;
4+
import java.util.function.Consumer;
45
import mekanism.api.providers.IGasProvider;
56
import mekanism.common.item.interfaces.IGasItem;
67
import mekanism.common.registration.impl.CreativeTabDeferredRegister.ICustomCreativeTabContents;
@@ -10,7 +11,6 @@
1011
import net.minecraft.network.chat.Component;
1112
import net.minecraft.world.item.ArmorItem;
1213
import net.minecraft.world.item.ArmorMaterial;
13-
import net.minecraft.world.item.CreativeModeTab;
1414
import net.minecraft.world.item.Item;
1515
import net.minecraft.world.item.ItemStack;
1616
import net.minecraft.world.item.Rarity;
@@ -46,7 +46,7 @@ public int getBarColor(@NotNull ItemStack stack) {
4646
}
4747

4848
@Override
49-
public void addItems(CreativeModeTab.Output tabOutput) {
49+
public void addItems(Consumer<ItemStack> tabOutput) {
5050
tabOutput.accept(ChemicalUtil.getFilledVariant(new ItemStack(this), getGasType()));
5151
}
5252
}

src/main/java/mekanism/common/item/gear/ItemMekaSuitArmor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@
8181
import net.minecraft.world.entity.player.Inventory;
8282
import net.minecraft.world.entity.player.Player;
8383
import net.minecraft.world.item.ArmorItem;
84-
import net.minecraft.world.item.CreativeModeTab;
8584
import net.minecraft.world.item.Item;
8685
import net.minecraft.world.item.ItemStack;
8786
import net.minecraft.world.item.Rarity;
@@ -261,7 +260,7 @@ public ItemEnchantments getAllEnchantments(@NotNull ItemStack stack) {
261260
}
262261

263262
@Override
264-
public void addItems(CreativeModeTab.Output tabOutput) {
263+
public void addItems(Consumer<ItemStack> tabOutput) {
265264
tabOutput.accept(StorageUtils.getFilledEnergyVariant(new ItemStack(this)));
266265
}
267266

src/main/java/mekanism/common/registration/impl/CreativeTabDeferredRegister.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import net.minecraft.core.registries.Registries;
1313
import net.minecraft.world.item.CreativeModeTab;
1414
import net.minecraft.world.item.Item;
15+
import net.minecraft.world.item.ItemStack;
1516
import net.minecraft.world.level.ItemLike;
1617
import net.minecraft.world.level.block.Block;
1718
import net.neoforged.bus.api.IEventBus;
@@ -65,13 +66,21 @@ public static void addToDisplay(CreativeModeTab.Output output, ItemLike... items
6566
}
6667

6768
public static void addToDisplay(CreativeModeTab.Output output, ItemLike itemLike) {
69+
CreativeModeTab.TabVisibility visibility;
70+
if (output instanceof BuildCreativeModeTabContentsEvent) {
71+
//If we are added from the event, only add the item to the parent tab, as we will already be contained in the search tab
72+
// from when we are adding to our tabs
73+
visibility = CreativeModeTab.TabVisibility.PARENT_TAB_ONLY;
74+
} else {
75+
visibility = CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS;
76+
}
6877
if (itemLike.asItem() instanceof ICustomCreativeTabContents contents) {
6978
if (contents.addDefault()) {
70-
output.accept(itemLike);
79+
output.accept(itemLike, visibility);
7180
}
72-
contents.addItems(output);
81+
contents.addItems(stack -> output.accept(stack, visibility));
7382
} else {
74-
output.accept(itemLike);
83+
output.accept(itemLike, visibility);
7584
}
7685
}
7786

@@ -99,7 +108,7 @@ public static void addToDisplay(FluidDeferredRegister register, CreativeModeTab.
99108

100109
public interface ICustomCreativeTabContents {
101110

102-
void addItems(CreativeModeTab.Output tabOutput);
111+
void addItems(Consumer<ItemStack> addToTab);
103112

104113
default boolean addDefault() {
105114
return true;

0 commit comments

Comments
 (0)