Jump to content

Items unable to move/disppearing


bigbaddevil6

Recommended Posts

The problem is I recently been making a furnace and I went to test the progress and the GUI background, loads all the slots, but as soon as i go to move anything in that GUI whether it be in the inventory or the furnace itself it wont move. The item you click on will attempt to move but then go back to the slot it was in. Sometimes the items will disappear. Items can be inserted into the furnace through hoppers and be pulled out, the furnace will also update from idle to active, but nothing will show up in the GUI. I do not get any errors in the developer console and I've check my code against the code from the vanilla furnace but it all seems fine from what I can see. The only way i can move items is if i use the middle mouse button from creative but again they wont update in the furnace.

Link to comment
Share on other sites

Alright I put the in pastebin so you can have the all the syntax highlighting was unsure if this could do it.

This is the drawing of the Gui http://pastebin.com/LPTur6k3

 

This is the Gui Container http://pastebin.com/Dc2C4V0x

 

Neither one is completely finish i still need to do a lot more, but to my knowledge it should work enough to test.

Link to comment
Share on other sites

wait which method? This is the first time I've done a Gui for with Minecraft, plus I've been staring at this for too long today. I'm going to bed after I send this so tomorrow I can focus better, but if you would be kind to show me which method I messed up on, cause I'm following this little tutorial and I can't see where I've strayed from. Thanks for your help! Makes stuff like this that much less of a pain in the ass.

Link to comment
Share on other sites

So I think I have may found what you are talking about. It is different from the vanilla code.

        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
                if(!world.isRemote){
                        FMLNetworkHandler.openGui(player, ScratchForFun.instance, ScratchForFun.guiIdQuartzFurnace, world, x, y, z);
                }
               
                return true;
        }

 

This doesn't have an else statement like the vanilla code does. The full code for the block is here. http://pastebin.com/tkKAhe37

Just in case here is the GUI Handler http://pastebin.com/c9y9sdmq

Link to comment
Share on other sites

Can you post the GuiHandler class? Maybe there's something wrong there.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Yea I thought i followed everything perfectly but for some reason when i go to use it, it does that. I don't get errors at all and the person showed it working fine for him. the only thing i see different between vanilla furnace and mine is my onBlockActivated

 

 

This is mine.

 

	public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
	if(!world.isRemote){
		FMLNetworkHandler.openGui(player, ScratchForFun.instance, ScratchForFun.guiIdQuartzFurnace, world, x, y, z);
	}

	return true;
}

 

This is vanilla's

 

    public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
    {
        if (par1World.isRemote)
        {
            return true;
        }
        else
        {
            TileEntityFurnace tileentityfurnace = (TileEntityFurnace)par1World.getBlockTileEntity(par2, par3, par4);

            if (tileentityfurnace != null)
            {
                par5EntityPlayer.displayGUIFurnace(tileentityfurnace);
            }

            return true;
        }
    }

 

But what puzzles me is that it should work the way i have it so makes me think that it can't be the problem so I don't know where to look.

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

    • They were already updated, and just to double check I even did a cleanup and fresh update from that same page. I'm quite sure drivers are not the problem here. 
    • i tried downloading the drivers but it says no AMD graphics hardware has been detected    
    • Update your AMD/ATI drivers - get the drivers from their website - do not update via system  
    • As the title says i keep on crashing on forge 1.20.1 even without any mods downloaded, i have the latest drivers (nvidia) and vanilla minecraft works perfectly fine for me logs: https://pastebin.com/5UR01yG9
    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
  • Topics

×
×
  • Create New...

Important Information

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