Solved Check if a sign is placed

Discussion in 'Plugin Development' started by Craoder, Aug 14, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    Craoder

    So, I'm trying to check if a sign is placed, and then send a message to the player that placed the sign.
    This is what i have so far:

    Code:
    import java.util.logging.Logger;
    
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin implements Listener {
    
       
        public final Logger logger = Logger.getLogger("Minecraft");
        PluginDescriptionFile pdfFile = getDescription();
        FileConfiguration config = getConfig();
    
        public void onEnable() {
            ConfigSave();
            getServer().getPluginManager().registerEvents(this, this);
            this.logger.info(this.pdfFile.getName() + " Version " + this.pdfFile.getVersion() + " Has Been Enabled!");
        }
    
        public void onDisable() {
            this.logger.info(this.pdfFile.getName() + " Has Been Disabled!");
    
        }
    
        public void ConfigSave() {
            this.config.options().copyDefaults(true);
            saveConfig();
        }
       
        @EventHandler
        public void onBlockPlace(BlockPlaceEvent e){
            Block block = e.getBlock();
            Player player = e.getPlayer();
            if(block.getType().equals(Material.SIGN)){
                player.sendMessage("You have placed a sign");
         }
      }
    }
    
    I don't get any errors but it doesn't work.
    Thanks in advance :)
     
  2. @Craoder
    Material.SIGN is only for use in Item form. When in block form it is either Material.WALL_SIGN or Material.SIGN_POST.
     
    Last edited: Aug 14, 2016
  3. Offline

    Craoder

    Thanks a lot, i ended up using Material.SIGN_POST :)
     
  4. Offline

    timtower Administrator Administrator Moderator

    My suggestion is to check both, you can now place a wall sign and the code won't run for it.
     
Thread Status:
Not open for further replies.

Share This Page