Was mache ich falsch?
Ich bin gerade dabei eine Minecraft Mod zu machen die einen weiteren Crafting Table hinzufügt und wenn man ihn rechtsclicked soll er das Crafting Table GUI von Minecraft öffnen. Tut es auch aber es schließt sich auch sofort wieder.
Oberhalb ist der Prozedur Code
Oberhalb ist der Code vom Block
Oberhalb ist vom Block die Imports
1 Antwort
Mir ist jetzt so aufgefallen, dass du in deiner use-Methode deiner Blockklasse (AcaciaCraftingBenchBlock) nicht InteractionResult.CONSUME zurückgibst, wenn das GUI erfolgreich geöffnet wird. Also kann dein Code nicht wissen ob alles erfolgreich war.
schau dich mal hier um ->
Block Interaction - Forge Community Wiki (gemwire.uk)
@Override
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
int x = pos.getX();
int y = pos.getY();
int z = pos.getZ();
if (!world.isClientSide) {
AcaciaCraftingBenchOnBlockRightClickedProcedure.execute(world, x, y, z, player);
return InteractionResult.CONSUME;
}
return InteractionResult.SUCCESS;
}
probier es mal so.
Ich würde generell in so einem Projekt mit try-catch Blöcken arbeiten. Du hast in deinem Code nicht eine einzige Fehlerbehandlung wenn was schief geht. So kannst du deinen Code definitiv nicht verwenden. Mir sind auch noch viele andere Dinge aufgefallen die man grundsätzlich anderes hätte machen sollen, aber da geh ich jetzt nicht weiter drauf ein. Ändere zuerst deinen public InteractionResult use Block und schau ob dass dein Problem löst
Gruß EchoTech
Hab noch nicht so viel Erfahrung. Mache das erste mal meine eigene Mod. Ich probiere mal das