idontspam Posted April 27, 2020 Posted April 27, 2020 (edited) Like can i change the behavior of something that exists in minecraft to do something else? specifically i want something like //pseudo code for example Class Glowstonedust{ onclickonground{ place(Glowstonewire); } } Edited April 27, 2020 by idontspam Quote
ChampionAsh5357 Posted April 27, 2020 Posted April 27, 2020 There's an event for that: PlayerInteractEvent#RightClickBlock. Quote
idontspam Posted April 27, 2020 Author Posted April 27, 2020 On 4/27/2020 at 3:24 AM, ChampionAsh5357 said: There's an event for that: PlayerInteractEvent#RightClickBlock. Expand so like if i am rightclicking on an item in say slot#2 and i want it to place a block i would use PlayerInteractEvent#RightClickBlock Quote
ChampionAsh5357 Posted April 27, 2020 Posted April 27, 2020 If you are using a vanilla item yes. If you are creating your own item override onItemUse or just make it a BlockItem. Quote
ZDoctor Posted April 27, 2020 Posted April 27, 2020 I would look into how redstone does it. Pretty sure you'll need to create a new TileEntity to do this. Quote
Draco18s Posted April 27, 2020 Posted April 27, 2020 On 4/27/2020 at 4:41 PM, ZDoctor said: I would look into how redstone does it. Expand No. Redstone's item overrides a method that Glowstone dust's item does not. This only way to get the required behaviour is to use an event, as ChampionAsh already said. 1 hour ago, ZDoctor said: Pretty sure you'll need to create a new TileEntity to do this. Expand Absolutely not. Redstone dust wire does not use a tile entity. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
idontspam Posted April 27, 2020 Author Posted April 27, 2020 On 4/27/2020 at 5:56 PM, Draco18s said: No. Redstone's item overrides a method that Glowstone dust's item does not. This only way to get the required behaviour is to use an event, as ChampionAsh already said. Absolutely not. Redstone dust wire does not use a tile entity. Expand What method does it Override? Quote
Niprow Posted April 27, 2020 Posted April 27, 2020 On 4/27/2020 at 8:25 PM, idontspam said: What method does it Override? Expand look in your idea?! Quote I will make fun of you if you are not able to look into the (vanilla-) code.
idontspam Posted April 27, 2020 Author Posted April 27, 2020 On 4/27/2020 at 8:32 PM, Niprow said: look in your idea?! Expand I couldn't find a restone_dust item anywhere Quote
Niprow Posted April 27, 2020 Posted April 27, 2020 On 4/27/2020 at 8:52 PM, idontspam said: I couldn't find a restone_dust item anywhere Expand there is not any class of the Item it is just a normal BlockNamedItem see: net.minecraft.item.Items Quote I will make fun of you if you are not able to look into the (vanilla-) code.
Draco18s Posted April 27, 2020 Posted April 27, 2020 On 4/27/2020 at 8:57 PM, Niprow said: there is not any class of the Item it is just a normal BlockNamedItem see: net.minecraft.item.Items Expand Note that BlockNamedItem is a subclass of Item that overrides methods and that glowstone dust is just a regular Item. So my statement is no less false. 1 Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
idontspam Posted May 28, 2020 Author Posted May 28, 2020 Okay well i got the other Stuff to work. But how do i place the block. is their a method for that? Quote
pokmon987 Posted May 28, 2020 Posted May 28, 2020 You have created the block, yes? Placing the block depends on how you're doing it, whether you're overriding the vanilla class just to add this functionality or if you're using the PlayerInteractEvent#RightClickBlock. Supposing you're using the latter, you check what you want, such as player is holding this item, and then getWorld() for placing the block, getPos() for the block the player is looking at, and getSide() to increment the direction so you don't just replace the block, and use World#setBlockState to place the block. Make sure to check that the block you're replacing is replaceable. Quote
Recommended Posts
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.