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

Hello,

I've made a simple custom ItemEntity that can't catch on fire. Here's the code for it:

package zorochase.yanm.item;

import net.minecraft.entity.EntityType;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;

public class FireproofItemEntity extends ItemEntity {


    public FireproofItemEntity(World worldIn, double x, double y, double z, ItemStack stack) {
        super(worldIn, x, y, z, stack);
    }


    public FireproofItemEntity(EntityType<?> entityType, World world) {
        super((EntityType<? extends ItemEntity>)entityType, world);
    }

    @Override
    public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) {
        if (!p_70097_1_.isFireDamage()) {
            return super.attackEntityFrom(p_70097_1_, p_70097_2_);
        }
        return false;
    }
}

 

Here's how it was registered (taken from my main mod class):

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents {
    @SubscribeEvent
    public static void onEntityRegistry(final RegistryEvent.Register<EntityType<?>> entityRegistryEvent) {
        entityRegistryEvent.getRegistry().register(
                EntityType.Builder
                        .create(FireproofItemEntity::new, EntityClassification.MISC)
                        .build(YetAnotherNetheriteMod.MODID + ":fireproof_item_entity")
                        .setRegistryName(YetAnotherNetheriteMod.MODID, "fireproof_item_entity")
        );
    }
}

 

I also have a FireproofItem class that I use for all items I want to be fireproof when dropped, here's its code:

package zorochase.yanm.item;

import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import zorochase.yanm.YetAnotherNetheriteMod;

import javax.annotation.Nullable;

public class FireproofItem extends Item {

    public FireproofItem(String registryName) {
        super(new Item.Properties().group(YetAnotherNetheriteMod.MOD_TAB));
        setRegistryName(YetAnotherNetheriteMod.MODID, registryName);
    }

    @Nullable
    @Override
    public Entity createEntity(World world, Entity location, ItemStack itemstack) {
        FireproofItemEntity custom = new FireproofItemEntity(world, location.posX, location.posY, location.posZ, itemstack);
        custom.setMotion(location.getMotion());
        custom.setDefaultPickupDelay();
        return custom;
    }

    @Override
    public boolean hasCustomEntity(ItemStack stack) {
        return true;
    }
}

 

All of this works just fine, so long as I don't leave a FireproofItem on the ground before quitting the game/to the main menu. If I do, and I try to load the world again, it freezes on 100%.

I have no idea what could be causing this. Somebody else on these forums had the same issue a few months ago, but it seems they were also unable to figure it out. That or if they did

they never replied with their fix. Any help would really be appreciated, as this is a feature I'd really rather not leave out.

 

Edited by Zorochase

  • Author
34 minutes ago, DragonITA said:

Sorry, but i never used Item entities and I don't know what they are.

An ItemEntity is the entity that's created when you drop an item in the world, when a block breaks drops itself, etc..

  • Author

Last bump... it'd really be nice to at least know whether I should report this as a bug with Forge...

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.