ServerPlugin BlockPlaceEvent

Dieses Thema im Forum "Programmierung" wurde erstellt von CodEr, 26. April 2014.

  1. CodEr
    Offline

    CodEr

    Registriert seit:
    20. April 2014
    Beiträge:
    8
    Hi :)


    Ich war so dumm zu vergessen wie man bei einem BlockPlaceEvent den platzierten block bekommt -.-

    Kann mir das jemand zeigen?

    Code (Text):
    1.  
    2. @EventHandler
    3.     public void onBlockplace(BlockPlaceEvent e){
    4.     Player ep = e.getPlayer();
    5.  
    6. if(//Der plazierte Block DIRT ist){
    7.  
    8. //Code
    9. }
    10.    
    11.        
    12.        
    13.        
    14.     }
    15.  
     
    #1
  2. Timon
    Offline

    Timon Ehem. Teammitglied

    Registriert seit:
    20. Oktober 2013
    Beiträge:
    67
    Ort:
    Far far away
    Minecraft:
    Rblilly
    #2
  3. CodEr
    Offline

    CodEr

    Registriert seit:
    20. April 2014
    Beiträge:
    8
    Hmm

    Aber getBlockPlaced() kann ich nicht mit Material.MATERIAL überprüfen?
     
    #3
  4. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    getBlockPlaced() gibt dir den Plazierten Block. Davon kannst du dann die Methode getType() aufrufen, die dir das Material gibt:
    Code (Text):
    1. if (e.getPlacedBlock().getType() == Material.DIRT) {
    2.   ///Weiterer Code
    3. }
     
    #4
  5. CodEr
    Offline

    CodEr

    Registriert seit:
    20. April 2014
    Beiträge:
    8
    Warum geht dann das nicht?:

    Code (Text):
    1.  
    2. package me.thrustlp.eap;
    3.  
    4. import org.bukkit.Material;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.block.BlockPlaceEvent;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. public class Main extends JavaPlugin implements Listener{
    14.  
    15.     @Override
    16.     public void onEnable(){
    17.         System.out.println("[EAP] Aktiv!");
    18.        
    19.        
    20.        
    21.     }
    22.    
    23.    
    24.     @Override
    25.     public void onDisable(){
    26.        
    27.         System.out.println("[EAP] Deaktiviert!");
    28.        
    29.        
    30.     }
    31.     public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args){
    32.         Player p = (Player) sender;
    33.        
    34.        
    35.        
    36.        
    37.        
    38.        
    39.        
    40.        
    41.        
    42.         return true;
    43.     }
    44.        
    45.    
    46.     @EventHandler
    47.     public void onBlockplace(BlockPlaceEvent e){
    48.     if(e.getBlockPlaced().getType() == Material.TNT){
    49.         e.setCancelled(true);
    50.        
    51.     }
    52.        
    53.        
    54.        
    55.     }
    56.    
    57.    
    58.    
    59.    
    60.    
    61.    
    62.    
    63.    
    64. }
    65.  
    66.  
     
    #5
  6. Howha
    Offline

    Howha

    Registriert seit:
    10. April 2013
    Beiträge:
    42
    Minecraft:
    Howha
    Weil du den Listener nicht registriert hast. Pack das in die onEnable()-Methode:

    Code (Text):
    1. getServer().getPluginManager().registerEvents(this, this);
     
    #6