Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.16.5] Unwanted Potions automatically generated in vanilla Creative Tabs


Dakuro
 Share

Recommended Posts

Hello,

I'm currently making an effect and custom potions and it works fine and all, but in the Brewing and Weapons vanilla tabs there is automatically generated potions with my effect (potion, splashpotion, lingering potion and tipped arrows).

For example, here is my custom potion :

Spoiler

custom_potion.png.40ad29fbb0e7be1b9d9e1da11dd0b568.png

And here is the automatically generated potion :

Spoiler

auto_potion.png.1d28e806108daaeb02e6f771c8988d18.png

 

I found a method in the PotionItem and I think it may be related to this :

public void fillItemCategory(ItemGroup p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
      if (this.allowdedIn(p_150895_1_)) {
         for(Potion potion : Registry.POTION) {
            if (potion != Potions.EMPTY) {
               p_150895_2_.add(PotionUtils.setPotion(new ItemStack(this), potion));
            }
         }
      }
}

 

Here is my ModPotions class :

public class ModPotions
{
    public static final RegistryObject<Effect> ASTRAAL_EFFECT = Registration.EFFECTS.register("astraal",
            () -> new ModEffect(EffectType.BENEFICIAL, 0xFF2AC8F2));

    public static final RegistryObject<Potion> ASTRAAL_POTION = Registration.POTIONS.register("astraal",
            () -> new Potion(new EffectInstance(ASTRAAL_EFFECT.get(), 3500, 0)));

    public static final RegistryObject<Potion> LONG_ASTRAAL_POTION = Registration.POTIONS.register("long_astraal",
            () -> new Potion(new EffectInstance(ASTRAAL_EFFECT.get(), 6500, 0)));

    public static final RegistryObject<Potion> STRONG_ASTRAAL_POTION = Registration.POTIONS.register("strong_astraal",
            () -> new Potion(new EffectInstance(ASTRAAL_EFFECT.get(), 3500, 1)));
}

 

For each new Potion I'm making, there is a potion and all its variants generated in the vanilla tabs.

I fail to see what I should do to fix this, so any sort of help is appreciated, thank you all in advance.

Link to comment
Share on other sites

9 hours ago, Dakuro said:

For each new Potion I'm making, there is a potion and all its variants generated in the vanilla tabs.

I fail to see what I should do to fix this, so any sort of help is appreciated, thank you all in advance.

its not possible to fix that, because there is no event to modify this
It shouldn't really matter because there are no recipes for the potions, so you can't get them in survival

 

9 hours ago, Dakuro said:

Registration.EFFECTS

You should also put your DeferredRegisters in the same class as the associated RegistryObjects, since this can usually lead to problems

 

Link to comment
Share on other sites

Thank you for your response!

16 minutes ago, Luis_ST said:

its not possible to fix that, because there is no event to modify this
It shouldn't really matter because there are no recipes for the potions, so you can't get them in survival

Oh well, yes that's not so important, I just thought it would be inconsistent to have unwanted potions in the vanilla tabs, but we can't do anything about it.

 

18 minutes ago, Luis_ST said:

You should also put your DeferredRegisters in the same class as the associated RegistryObjects, since this can usually lead to problems

Oh I wasn't aware this was really important, than you for the tip! Just for my curiosity, what kind of problems could it cause?

Link to comment
Share on other sites

45 minutes ago, Dakuro said:

Just for my curiosity, what kind of problems could it cause?

I'm not 100% sure because I've never tested it myself, but I think NullPointerException and ExceptionInInitializerError
-> putting the DeferredRegister in the class of the RegistryObjects ensures that the class is loaded

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • public abstract class NitroglycerinFluid extends ForgeFlowingFluid { // Directly reference a log4j logger. private static final Logger LOGGER = LogManager.getLogger(); protected NitroglycerinFluid(Properties properties) { super(properties); } public static Properties createProperties() { return new Properties(() -> ModFluids.NITROGLYCERIN, () -> ModFluids.FLOWING_NITROGLYCERIN, FluidAttributes.builder(new ResourceLocation("sussybakaplus:block/nitroglycerin_still"), new ResourceLocation("sussybakaplus:block/nitroglycerin_flow")).overlay(new ResourceLocation("sussybakaplus:block/nitroglycerin_overlay")).density(3000).viscosity(1000).luminosity(15).temperature(1300)).tickRate(1).canMultiply().bucket(() -> ModItems.NITROGLYCERIN_BUCKET).block(() -> ModBlocks.NITROGLYCERIN); } @Override public boolean isSource(FluidState state) { return false; } @Override public int getAmount(FluidState state) { return state.getValue(LEVEL); } public void animateTick(Level p_76445_, BlockPos p_76446_, FluidState p_76447_, Random p_76448_) { LOGGER.info("animate"); if (!p_76447_.isSource() && !p_76447_.getValue(FALLING)) { if (p_76448_.nextInt(64) == 0) { p_76445_.playLocalSound((double)p_76446_.getX() + 0.5D, (double)p_76446_.getY() + 0.5D, (double)p_76446_.getZ() + 0.5D, SoundEvents.WATER_AMBIENT, SoundSource.BLOCKS, p_76448_.nextFloat() * 0.25F + 0.75F, p_76448_.nextFloat() + 0.5F, false); } } else if (p_76448_.nextInt(10) == 0) { p_76445_.addParticle(ParticleTypes.UNDERWATER, (double)p_76446_.getX() + p_76448_.nextDouble(), (double)p_76446_.getY() + p_76448_.nextDouble(), (double)p_76446_.getZ() + p_76448_.nextDouble(), 0.0D, 0.0D, 0.0D); } } @Nullable public ParticleOptions getDripParticle() { return ParticleTypes.DRIPPING_WATER; } @Override protected void beforeDestroyingBlock(LevelAccessor accessor, BlockPos pos, BlockState state) { BlockEntity blockentity = state.hasBlockEntity() ? accessor.getBlockEntity(pos) : null; LOGGER.info("spread to " + state.getBlock().getRegistryName().toString()); if (state.getBlock().getRegistryName().getPath().equals("fire")) { float f = 4.0F; Minecraft.getInstance().level.explode(null, pos.getX(), pos.getY(), pos.getZ(), f, Explosion.BlockInteraction.BREAK); } //Block.dropResources(state, accessor, pos, blockentity); } @Override public void tick(Level level, BlockPos pos, FluidState state) { //super.tick(level, pos, state); LOGGER.info("tick"); if (this.hasBurningNeighbors(level, pos)) { LOGGER.info("EXPLODING!!!"); float f = 4.0F; level.explode(null, pos.getX(), pos.getY(), pos.getZ(), f, Explosion.BlockInteraction.BREAK); } else { LOGGER.info(pos.toShortString() + " doesn't have any buring neighbors"); } } private boolean hasBurningNeighbors(LevelReader levelReader, BlockPos pos) { for(Direction direction : Direction.values()) { if (this.isBurning(levelReader, pos.relative(direction))) { return true; } } return false; } private boolean isBurning(LevelReader levelReader, BlockPos pos) { return (pos.getY() < levelReader.getMinBuildHeight() || pos.getY() >= levelReader.getMaxBuildHeight() || levelReader.hasChunkAt(pos)) && levelReader.getBlockState(pos).isBurning(levelReader, pos); } protected float getExplosionResistance() { return 0.0F; } public int getTickDelay(LevelReader p_76226_) { return p_76226_.dimensionType().ultraWarm() ? 1 : 1; } protected boolean isRandomlyTicking() { return true; } public Optional<SoundEvent> getPickupSound() { return Optional.of(SoundEvents.BUCKET_FILL); } } My Fluid Class
    • So how do I get the container? It doesn't need to be a event btw.
    • It says it in the log. It's 16. You need to use Java 8 instead of Java 16 for versions before 1.17.
    • What java version are you using (run "java -version" to get it)
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.