Posted August 28, 20232 yr I'm trying to add new copper blocks and am working on waxing them right now. As I couldn't figure out how to add my new items to the BiMap in the Vannilla Honeycomb class, I'm now using PlayerInteractEvent.RightClickBlock, to: 1. Check if the player is holding honeycomb 2. Check if the clicked block is a new copper block 3. Replace new copper block with waxed version. Step 1 and 2 work fine, but I can't get step 3 to work. Right now I'm trying to use Level.setBlock(), but as the event is static, I can only use Minecraft.getInstance().Level.setBlock(), where the change is only made for a fraction of a second. If anyone has an idea how to fix this, or if this is a different problem entirely, any help is appreciated.
August 28, 20232 yr Duplicate post: https://forums.minecraftforge.net/topic/125931-need-help-modifying-a-vanilla-item/#comment-542688 As explained there, you should do your processing in Block.use() which passes you the Level. You should never use client classes like the "Minecraft" class in code that can be called on the server. You will crash the game. To make a change to the game state you need to modify the state on the server. Modifying it only on the client will just create a "ghost block" that will vanish the next time threre is a chunk update from the server. If you follow what vanilla does in HoneycombItem.useOn(), it modifies the state on both the client and server which improves responsiveness. Technically only changes on the server are required, provided to you set the Block.UPDATE_CLIENTS mask in the flags passed to setBlock() - or just use Level.setBlockAndUpdate() instead. NOTE: If you don't want your questions to be ignored, you need to provide a simple build that reproduces your problem. Code snippets out of context or English descriptions of your code usually provide little to no information. Most people will not waste their time asking you for more information. Edited August 28, 20232 yr by warjort Boilerplate: If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one. If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install Large files should be posted to a file sharing site like https://gist.github.com You should also read the support forum sticky post.
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.