Jump to content

Recommended Posts

Posted

hi, i came accross this weird bug where cancelled event wouldn't be processed before the next event and the 2nd event wouldn't be properly processed.

 

the code is really simple (the one needed to reproduce the bug anyway):

 

@ForgeSubscribe

public void cancelAllBlockPlaced(PlayerInteractEvent event){

if(event.action == event.Action.RIGHT_CLICK_BLOCK){

event.setCanceled(true);

}

}

 

so basicly this should stop ALL block from behing placed (as well as removing the possibility of using crafting table and other GUI block but that's not the point)

 

but this code appears to be skipped when the players spam right click to place blocks

example:

p = player

[] = empty block

 

p[][][][]

p[][][c][]

 

when the player right click once on block 'c', the event is canceled correctly (nice :D)

when the player spam r click the ground (not too fast), it makes a block appear and dissapear .

finally, when the player right click at a fast enough speed, he can place a block on the canceled block (before it dissapear) and permanently place a new block

ex:

 

before:

p[][][]

p[][][]

 

click 1:

p[][][][]

p[][][c][]

 

click 2 (shortly after click 1):

p[][][][]

p[][c][c][]

 

after forge cancel event 1:

p[][][][]

p[][c][][]

 

anybody know why it does this and an easy way to fix this (beside adding the event to a thread and look if all event were canceled succefully/correctly)?

 

thx in advance

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

This is still an issue. I have the same problem. The source of the problem (after hours of debugging) is that for whatever reason the server doesn't acknowledge that the player is trying to place a block on a block. Instead, it defaults to a 'event.Action.RIGHT_CLICK_AIR' event. In this case, even if you cancel the 'Right Click Air', the block is placed because that kind of event doesn't pertain to a block being placed.

 

This is DEFINITELY A BUG, and should be treated as such. I'd really like some help, Forge. I've been working at my mod for about ten hours straight now, and am nearing completion...but this kind of thing puts a brick wall in the way.

 

I cannot stress enough how much this either

 

A) Needs to be FIXED

or

B) Needs to have Block events implemented (ie onBlockDestroy, onBlockPlace, onBlockActivated, etc)

 

Thank you for your time!

Have a modding question? PM me and hopefully I'll be able to help. Good at 2d Pixel Art? We need your help!  http://www.minecraftforum.net/topic/1806355-looking-for-2d-pixel-artist/

Posted

Thank you, luacs. For those having the same issue, a temporary (if lengthy and iffy) workaround is to hard-code the rightclick actions you want clientside, and then use a custom TCPConnection to verify that the files for the client are valid. It took a while, but we eventually got that working, so now the Server kicks clients if they don't have the correct files, and if they don't send the files in the first place they get kicked too. I hope this gets fixed regardless, however.

Have a modding question? PM me and hopefully I'll be able to help. Good at 2d Pixel Art? We need your help!  http://www.minecraftforum.net/topic/1806355-looking-for-2d-pixel-artist/

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.

×
×
  • Create New...

Important Information

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