Help with plugin dev [SOLVED]

Discussion in 'Plugin Development' started by FeltLizard, Sep 1, 2011.

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

    FeltLizard

    Okay so i'm stuck i followed the tutorial but don't know what to do next, even though the plugin is suppose to be really simple.
    okay so basically i want the plugin to send a message to the user every time they place a torch that says hello. Here is my code. So any suggestions what i put next? Also do i need a block listener if i'm placing blocks not altering them and what not.

    HelloTorch.java
    Code:
    package me.feltlizard.hellotorch;
    
    import java.util.logging.Logger;
    
    import org.bukkit.event.Event;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class HelloTorch extends JavaPlugin {
        private final HelloTorchPlayerListener playerListener = new HelloTorchPlayerListener(this);
    
        Logger log = Logger.getLogger("Minecraft");
    
        public void onEnable(){
            log.info("Plugin enabled!");
            PluginManager pm = this.getServer().getPluginManager();
            pm.registerEvent(Event.Type.BLOCK_PLACE, playerListener, Event.Priority.Normal, this);
        }
    
        public void onDisable(){
            log.info("Plugin disabled!");
    
        }
    }
    
    HelloTorchPlayerListener.java
    Code:
    package me.feltlizard.hellotorch;
    
    import org.bukkit.event.player.PlayerListener;
    
    public class HelloTorchPlayerListener extends PlayerListener {
    	public static HelloTorch plugin; public HelloTorchPlayerListener(HelloTorch instance) {
    		plugin = instance;
    	}
    
    }
    
    
     
  2. Offline

    zhuowei

    In this case, you need a BlockListener instead.
    HelloTorch.java
    Code:
    package me.feltlizard.hellotorch;
    
    import java.util.logging.Logger;
    
    import org.bukkit.event.Event;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class HelloTorch extends JavaPlugin {
        private final HelloTorchBlockListener blockListener = new HelloTorchBlockListener(this);
    
        Logger log = Logger.getLogger("Minecraft");
    
        public void onEnable(){
            log.info("Plugin enabled!");
            PluginManager pm = this.getServer().getPluginManager();
            pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Event.Priority.Normal, this);
        }
    
        public void onDisable(){
            log.info("Plugin disabled!");
    
        }
    }
    
    HelloTorchBlockListener.java
    Code:
    package me.feltlizard.hellotorch;
    
    import org.bukkit.Material;
    import org.bukkit.event.block.*;
    
    public class HelloTorchBlockListener extends BlockListener {
    	public static HelloTorch plugin; public HelloTorchBlockListener(HelloTorch instance) {
    		plugin = instance;
    	}
    
            public void onBlockPlace(BlockPlaceEvent event) {
                 if (!event.isCancelled() && event.getItemInHand().getType() == Material.TORCH) {
                     event.getPlayer().sendMessage("you placed a torch.");
                 }
            }
    
    }
    
    
     
    FeltLizard likes this.
  3. Offline

    FeltLizard

    Thanks
    Thanks and i figured that out, now i just need to figure out how to send the player a message when they place a torch.
     
  4. Offline

    pmx

    Asking for a thread to be deleted because your issue is solved isnt very fair. Its best for it to be left here in case another person has the same issue later on, they wont have to make a new thread they can just read this one. You should put your thread title back to what it was :)
     
    Acrobot likes this.
  5. Offline

    FeltLizard

    true then i could also post how i solved it.

    So here is how i solved it, i did what the person suggested and put a block listener instead.
    here is what i put.
    Code:
    package me.feltlizard.hellotorch;
    
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.block.BlockListener;
    import org.bukkit.event.block.BlockPlaceEvent;
    
    public class HelloTorchBlockListener extends BlockListener {
    
        public static HelloTorch plugin;
    
        public HelloTorchBlockListener(HelloTorch instance) {
            plugin = instance;
        }
    
        public void onBlockPlace(BlockPlaceEvent event) {
    
            Player player = event.getPlayer();
            //gets player
            String name = event.getPlayer().getDisplayName();
            //gets players username
            Block block = event.getBlockPlaced();
            //gets placed block
    
            if (block.getType() == Material.TORCH) {
                //if block is a torch it says what's in the " " and if it isn't then nothing happens.
                player.sendMessage("Hello, " + name);
            }
     
        }
    
    }
    
     
Thread Status:
Not open for further replies.

Share This Page