Rendre un bloc destructible + vite avec un type d'outil?
-
Via un event :
@SubscribeEvent public void onBlockDrop(BlockEvent.HarvestDropsEvent event) { if(event.state.getBlock() == ClassePrincipale.bloc && event.harvester != null && event.harvester.getCurrentEquippedItem() != null) { // si c'est ton bloc et que le bloc a été détruit par un joueur et que l'item qu'il a en main n'est pas nul Set <string>toolClass = event.harvester.getCurrentEquippedItem().getItem().getToolClasses(event.harvester.getCurrentEquippedItem()); // le type d'outil if(!toolClass.contains("pickaxe") && !toolClass.contains("shovel")) { // s'il ne contient ni pickaxe ni shovel (donc si ce n'est pas une pioche ni une pelle) event.drops.clear(); // on retire le drop } } } ```</string>
-
J’ai essayé dans la classe ‘Limon Bloc.java’:
package fr.vorax.egypte.common; import java.util.Set; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemSpade; import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class LimonBloc extends Block { public LimonBloc(Material material) { super(material); this.setHarvestLevel("shovel", 0); } @SubscribeEvent public void onBlockDrop(BlockEvent.HarvestDropsEvent event) { if(event.state.getBlock() == ModEgypte.limonBloc && event.harvester != null && event.harvester.getCurrentEquippedItem() != null) { // si c'est ton bloc et que le bloc a été détruit par un joueur et que l'item qu'il a en main n'est pas nul Set <string>toolClass = event.harvester.getCurrentEquippedItem().getItem().getToolClasses(event.harvester.getCurrentEquippedItem()); // le type d'outil if(!toolClass.contains("pickaxe") && !toolClass.contains("shovel")) { // s'il ne contient ni pickaxe ni shovel (donc si ce n'est pas une pioche ni une pelle) event.drops.clear(); // on retire le drop } } } }
Ca ne fonctionne pas.</string>
-
Si tu veux utiliser un event : https://www.minecraftforgefrance.fr/showthread.php?tid=716
Sinon tu peux toujours modifier la fonction correspondante dans ton block (personnellement je préfère cette méthode si j’ai accès au block)