Yop ! J'avais essayé un truc comme ça à la base. Je vais essayer avec ta syntaxe mais il me semble que c'est ce que j'avais essayé au départ :/Pourquoi chercher à savoir quel bloc il a dans la main?
Tu vérifie juste si le bloc placé est une torche ou etc.. Avec l'event BlockPlaceEvent
Exemple:
Peut-être que j'ai mal interprété tes intentions mais ceci me parait plus convenableCode:@EventHandler public void OnBlockPlace(BlockPlaceEvent e){ if(e.getBlock().getType() != Material.TORCH || e.getBlock().getType() != Material.LEVER){ e.setCancelled(true); } }
AlexFatta
EDIT : Surprise surprise !! Ca fonctionne pas xDD
Code:
@EventHandler (ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onBlockPlace(BlockPlaceEvent event) {
final Player player = event.getPlayer();
final Material block = event.getBlock().getType();
System.out.println(player.getInventory().getItemInMainHand());
if (event.getHand() == EquipmentSlot.HAND) {
if (block != Material.TORCH || block != Material.LEVER || block != Material.WOOD_BUTTON || block != Material.STONE_BUTTON) {
event.setCancelled(true);
player.sendMessage(fr.alexfatta.fallenkingdoms.main.getGamePrefix() +
ChatColor.RED + "Erreur : tu ne peux pas poser ce block.");
}
}
}
EDIT 2 :
J'ai changé et essayé ceci mais ca ne fonctionne pas non plus :
Code:
@EventHandler (ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onBlockPlace(BlockPlaceEvent event) {
final Player player = event.getPlayer();
final Material block = event.getBlock().getType();
Block block_to_replace = event.getBlockPlaced(); //Ici j'ai modifié
System.out.println(player.getInventory().getItemInMainHand());
if (event.getHand() == EquipmentSlot.HAND) {
if (block != Material.TORCH || block != Material.LEVER || block != Material.WOOD_BUTTON || block != Material.STONE_BUTTON) {
block_to_replace.setType(Material.AIR); //et ici j'ai modifié
player.sendMessage(fr.alexfatta.fallenkingdoms.main.getGamePrefix() +
ChatColor.RED + "Erreur : tu ne peux pas poser ce block.");
}
}
}
Dernière édition: