Posted April 30, 201411 yr This is probably obvious but i'm missing it. I want to cancel all things to do with buckets under certain conditions. I see the bucketfill event. What I can't figure out is the empty bucket event and I don't see anything searching. Could someone point me in the right direction? Long time Bukkit & Forge Programmer Happy to try and help
April 30, 201411 yr Use the PlayerInteractEvent and check if the item held by the player is a bucket. It's the closest you can get. Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! | mah twitter This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.
April 30, 201411 yr Author I'll have to play around with that tonight. That was the event I started with, but I must have done something wrong. Long time Bukkit & Forge Programmer Happy to try and help
May 1, 201411 yr Author I figured out the problem. This was very wierd and maybe it will help others. What I am doing when the PlayerInteractEvent fires is to look for where the block that was impacted is at and determine if it is in a certain region. It worked great for placing blocks, setting things on fire, ect. It doesn't work for buckets though. Then I noticed when you right click with a bucket, the PlayerInteractEvent fires twice. The first time, the location is good. The second time x/y/z are all ZERO! The first one cancels correctly but doesn't stop the fluid drop dropping or picking up. The 2nd one is the one that has to be cancelled. To fix this, I looked for the type of click to be right click air and I substitue in the players x/y/z instead of the blocks. This works great. I wouldn't have kept looking at this without SanAndreasP' pointer to spur me back to that being the right event. Thanks. Long time Bukkit & Forge Programmer Happy to try and help
May 1, 201411 yr The second time. where all the coords are 0, that time it's the client version. The server version is the time where the coords are correct. so you may need to check if !world.isRemote. 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/
May 1, 201411 yr Author I can understand why you would think it is the client. I did at first. It isn't. I tested it. It is on the Server Tab of the debug and it returns from testing that it is the server. Long time Bukkit & Forge Programmer Happy to try and help
May 1, 201411 yr I can understand why you would think it is the client. I did at first. It isn't. I tested it. It is on the Server Tab of the debug and it returns from testing that it is the server. The call with the 0's in there is probably the action type RIGHT_CLICK_AIR, which is used when an item should be used. Just check for the event.action == PlayerInteractEvent.Action.RIGHT_CLICK_AIR Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! | mah twitter This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.
May 1, 201411 yr You could always add your own Bucket "un-fill" Event into Forge if you really wanted to. They might approve your addition sometime in the future, who knows? But the InteractEvent is probably your best shot.
May 1, 201411 yr Author As mentioned above it works so I don't think we need a new event. Just have to deal with it firing that 2nd time and realizing it the bucket. Long time Bukkit & Forge Programmer Happy to try and help
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.