Jump to content

Recommended Posts

Posted

Ok, this is bizarre, but I'm sure there's a logical explanation (?). One of the Items in our mod acts as a Furnace, but cannot seem to smelt ores and other smeltable items from other mods. Vanilla Minecraft is fine, but all other mods items it turns into Paper (or if I install more mods, some other random Item). There is nothing fancy in the code. The only major difference I can see is that 'getSmeltingResults' is being called from an Item and not from a Container.

 

Item Code:

ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(s2);

entityplayer.inventory.addItemStackToInventory(new ItemStack(itemstack.getItem(), 1, 0));

 

When I print the variables to the screen (the other mod's Smelting Results), they show just fine. But when I addItemStackToInventory or  even dropItem, it makes paper.

 

However, if I change the second line to Spawn an EntityItem, it works fine (e.g.):

Entity entity = new EntityItem(worldObj, entityplayer.posX, entityplayer.posY, entityplayer.posZ, itemstack);

worldObj.spawnEntityInWorld(entity);

 

I am imagining that this is because the Item I am pretending is a Furnace is not able to access the items from other mods? Of course, it could be that I am just being stupid (there is some evidence to support this).

 

Can one of our brave moderators explain this behavior?

 

 

Posted

Ok, I played around a bit more. There were two problems.

 

Changing the way the ItemStack was instantiated did fix identification of the right smelting result from other mods (pulling the correct NBT). So, on that part you were right. However, custom smelting results were not bringing in a stackSize (stackSize was 0). For some reason, vanilla results are showing a stackSize, but custom results from other mods are showing stackSize of zero. If I'd made a custom furnace I would have used mergeItemStack which would have handled the addition of items to your inventory without using the stackSize from the recipe result. Smelting results from the Furnace are always a stackSize of 1.

 

Anyway, to fix it, I set the stackSize manually. Updated code:

 

ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(s2);

if (itemstack != null) {

itemstack.stackSize = 1;

        entityplayer.inventory.addItemStackToInventory(itemstack);

        s2.stackSize--;

        if (s2.stackSize == 0) {

removeItem(entityplayer, s2);

}

cookedFlag = true;

}

 

 

Thanks for the help, and thanks for pushing me to look deeper.

Posted

Exactly. But it does not. That was the original conundrum and why I was so confused. There are no problems with vanilla. And with hundreds of thousands of gameplays at this point, and hours of testing these last 3 months, I am pretty confident in that statement. You can download version 1.1.2a and see for yourself. There were no reports of any issues of Furnace Pet until it started getting added to modpacks and users began to try it on other mods' ores.

 

So, what makes Vanilla recipes immune to poor ItemStack implementation? Now it's your turn to do some digging :). Or not.

 

K

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...

×   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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Add the crash-report or latest.log (logs-folder) with sites like https://mclo.gs/ and paste the link to it here  
    • So i have a forge modded aternos server that worked just fine for a month untill today it suddenly crashes most of the time giving errors and idk which mod is causing the error or its smth else here is the crash log link https://mclo.gs/gGkzGKT
    • Struggling to decipher a crash report I'm getting in a custom modpack I'm tinkering with. The crash happens on startup, but weirdly, only some of the time. It seems to be related to Steves Carts, but weirdly it only started happening recently, and I can't identify if another mod is conflicting, or why it is only happening some of the time:   java.lang.NullPointerException: Cannot invoke "net.minecraft.world.entity.player.Player.m_20202_()" because "player" is null at vswe.stevescarts.events.OverlayEventHandler.onRenderTick(OverlayEventHandler.java:24) ~[stevescarts-1.20.1-1.1.14.jar%23527!/:1.20.1-1.1.14] {re:classloading} at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:260) ~[eventbus-6.0.5.jar%23127!/:?] {} at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:252) ~[eventbus-6.0.5.jar%23127!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%23127!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%23127!/:?] {} at net.minecraftforge.event.ForgeEventFactory.onRenderTickEnd(ForgeEventFactory.java:919) ~[forge-1.20.1-47.1.106-universal.jar%23581!/:?] {re:mixin,re:classloading,pl:mixin:APP:modernfix-forge.mixins.json:perf.potential_spawns_alloc.ForgeEventFactoryMixin,pl:mixin:A} at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1148) ~[client-1.20.1-20230612.114412-srg.jar%23576!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call,xf:fml:xaerominimap:xaero_minecraftclient,xf:fml:xaeroworldmap:xaero_wm_minecraftclient,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call,xf:fml:xaerominimap:xaero_minecraftclient,xf:fml:xaeroworldmap:xaero_wm_minecraftclient,pl:mixin:A,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23576!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call,xf:fml:xaerominimap:xaero_minecraftclient,xf:fml:xaeroworldmap:xaero_wm_minecraftclient,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick,xf:fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call,xf:fml:xaerominimap:xaero_minecraftclient,xf:fml:xaeroworldmap:xaero_wm_minecraftclient,pl:mixin:A,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:218) ~[minecraft-1.20.1-client.jar:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:flywheel.mixins.json:ClientMainMixin,pl:mixin:A,pl:runtimedistcleaner:A}     Including some extra info in case any of it is relevant^. Appreciate any ideas/advice!    
  • Topics

×
×
  • Create New...

Important Information

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