Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hey everyone, I'm trying to do when player eat custom food he gains a custom effect that makes player can't swim. 
I created a custom effect like this ;

public class cantSwimEffect extends MobEffect {

    public cantSwimEffect(MobEffectCategory mobEffectCategory, int color) {
        super(mobEffectCategory, color);
    }

    @Override
    public void applyEffectTick(LivingEntity pLivingEntity, int pAmplifier) {

        if (!pLivingEntity.level().isClientSide() && pLivingEntity.isInWater()) {

            pLivingEntity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN,400));

        };


    }

    @Override
    public  boolean isDurationEffectTick(int pDuration, int pAmplifier) {
        return true;
    }
}

I created a custom food like this ;
 

public class ModFoods {

    public static final FoodProperties custom_food = new FoodProperties.Builder().nutrition(2).saturationMod(02.f).fast().build();


}

But I don't know how to add that custom effect to this food ? Can anyone help me ?

Use FoodProperties.Builder#effect which takes a MobEffectInstance Supplier and the chance of the effect (0.0 - 1.0)

I would recommend to follow the java naming convention.

  • Author
2 hours ago, Luis_ST said:

Use FoodProperties.Builder#effect which takes a MobEffectInstance Supplier and the chance of the effect (0.0 - 1.0)

I would recommend to follow the java naming convention.

Thank you for your answer ! I did something like that ; 

public static final FoodProperties MERA_MERA_NO_MI = new FoodProperties.Builder().nutrition(2).fast()
            .saturationMod(0.2f).effect(() -> new MobEffectInstance(new CantSwimEffect(MobEffectCategory.HARMFUL,4866583)),1).build();

But in game I can only eat that food when I'm in creative mod. And also after I ate that java occurs this error ;

java.lang.IllegalArgumentException: No delegate exists for value net.mbkgr.opmod.item.custom.customeffect.cantSwimEffect@44b4927a

What is the problem can you help me ?

Please post ful log.

The error uses cantSwimEffect but in your code you use CantSwimEffect, make sure this is not the problem.

  • Author
Time: 2023-11-11 22:40:00
Description: Ticking player

java.lang.IllegalArgumentException: No delegate exists for value net.mbkgr.opmod.item.custom.customeffect.CantSwimEffect@2d3e42e0
    at net.minecraftforge.registries.ForgeRegistry.lambda$getDelegateOrThrow$5(ForgeRegistry.java:542) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23190%23197!/:?] {re:classloading}
    at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?] {}
    at net.minecraftforge.registries.ForgeRegistry.getDelegateOrThrow(ForgeRegistry.java:542) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23190%23197!/:?] {re:classloading}
    at net.minecraft.world.effect.MobEffectInstance.getEffect(MobEffectInstance.java:145) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,xf:fml:forge:potion}
    at net.minecraft.world.effect.MobEffectInstance.<init>(MobEffectInstance.java:64) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,xf:fml:forge:potion}
    at net.minecraft.world.entity.LivingEntity.addEatEffect(LivingEntity.java:3504) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.LivingEntity.eat(LivingEntity.java:3488) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.player.Player.eat(Player.java:2153) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.world.item.Item.finishUsingItem(Item.java:168) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.item.ItemStack.finishUsingItem(ItemStack.java:293) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,xf:fml:forge:itemstack}
    at net.minecraft.world.entity.LivingEntity.completeUsingItem(LivingEntity.java:3213) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.level.ServerPlayer.completeUsingItem(ServerPlayer.java:1162) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.world.entity.LivingEntity.updateUsingItem(LivingEntity.java:3092) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.level.ServerPlayer.updateUsingItem(ServerPlayer.java:1766) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.world.entity.LivingEntity.updatingUsingItem(LivingEntity.java:3074) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:2402) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.player.Player.tick(Player.java:245) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.level.ServerPlayer.doTick(ServerPlayer.java:489) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.network.ServerGamePacketListenerImpl.tick(ServerGamePacketListenerImpl.java:267) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.network.Connection.tick(Connection.java:289) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:159) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:937) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:844) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:95) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:679) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:251) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at java.lang.Thread.run(Thread.java:840) ~[?:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
    at net.minecraftforge.registries.ForgeRegistry.lambda$getDelegateOrThrow$5(ForgeRegistry.java:542) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23190%23197!/:?] {re:classloading}
    at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?] {}
    at net.minecraftforge.registries.ForgeRegistry.getDelegateOrThrow(ForgeRegistry.java:542) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23190%23197!/:?] {re:classloading}
    at net.minecraft.world.effect.MobEffectInstance.getEffect(MobEffectInstance.java:145) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,xf:fml:forge:potion}
    at net.minecraft.world.effect.MobEffectInstance.<init>(MobEffectInstance.java:64) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,xf:fml:forge:potion}
    at net.minecraft.world.entity.LivingEntity.addEatEffect(LivingEntity.java:3504) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.LivingEntity.eat(LivingEntity.java:3488) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.player.Player.eat(Player.java:2153) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.world.item.Item.finishUsingItem(Item.java:168) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.item.ItemStack.finishUsingItem(ItemStack.java:293) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,xf:fml:forge:itemstack}
    at net.minecraft.world.entity.LivingEntity.completeUsingItem(LivingEntity.java:3213) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.level.ServerPlayer.completeUsingItem(ServerPlayer.java:1162) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.world.entity.LivingEntity.updateUsingItem(LivingEntity.java:3092) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.level.ServerPlayer.updateUsingItem(ServerPlayer.java:1766) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.world.entity.LivingEntity.updatingUsingItem(LivingEntity.java:3074) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:2402) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.world.entity.player.Player.tick(Player.java:245) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
-- Player being ticked --
Details:
    Entity Type: minecraft:player (net.minecraft.server.level.ServerPlayer)
    Entity ID: 231
    Entity Name: Dev
    Entity's Exact location: 7.55, 123.00, 10.53
    Entity's Block location: World: (7,123,10), Section: (at 7,11,10 in 0,7,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)
    Entity's Momentum: 0.00, -0.08, 0.00
    Entity's Passengers: []
    Entity's Vehicle: null
Stacktrace:
    at net.minecraft.server.level.ServerPlayer.doTick(ServerPlayer.java:489) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.network.ServerGamePacketListenerImpl.tick(ServerGamePacketListenerImpl.java:267) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.network.Connection.tick(Connection.java:289) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:159) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading}
    at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:937) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:844) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:95) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:679) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:251) ~[forge-1.20.1-47.2.1_mapped_parchment_2023.06.26-1.20.1-recomp.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
    at java.lang.Thread.run(Thread.java:840) ~[?:?] {}

That is the full crash report. And yes I checked it it's correct.

Your MobEffect (CantSwimEffect) is a registry object, you must not create a new instance of it you should use the one your registered.

  • Author
38 minutes ago, Luis_ST said:

Your MobEffect (CantSwimEffect) is a registry object, you must not create a new instance of it you should use the one your registered.

Thank you I changed it like that and solved it ;
 

public static final FoodProperties MERA_MERA_NO_MI = new FoodProperties.Builder().nutrition(2).fast() .saturationMod(0.2f).effect(() -> new MobEffectInstance(ModEffects.CANT_SWIM.get()),1).build();

But I can't eat the food while player in survival mod. Why ?

  • Author
14 minutes ago, gbln00 said:

Thank you I changed it like that and solved it ;
 

public static final FoodProperties MERA_MERA_NO_MI = new FoodProperties.Builder().nutrition(2).fast() .saturationMod(0.2f).effect(() -> new MobEffectInstance(ModEffects.CANT_SWIM.get()),1).build();

But I can't eat the food while player in survival mod. Why ?

Ah sorry. I solved it . There was an registration error. Thanks for help again.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.