stepping on pressure plate

Discussion in 'Plugin Development' started by rhunter, Apr 29, 2015.

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

    rhunter

    i'm trying to make a plugin where you step on a pressure plate (which is on top of a redstone block), and it traps you. I started out making it so when you do /freeze it traps you, and that worked. Then I tried to put in the pressure plate part and it doesn't work. Heres my code:

    Code:
    package me.reece.Bukkit;
    
    import java.util.logging.Logger;
    
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Bukkit extends JavaPlugin implements Listener{
        public static Bukkit plugin;
        public final Logger logger = Logger.getLogger("Minecraft");
        public boolean freeze = false;
        public final BukkitListener bl = new BukkitListener(this);
       
        @Override
        public void onDisable(){
            this.logger.info("Disabled!");
        }
       
        @Override
        public void onEnable(){
            this.logger.info("Enabled!");
            PluginManager pm = this.getServer().getPluginManager();
            pm.registerEvents(bl, this);
            getConfig().options().copyDefaults(true);
            saveConfig();
        }
       
       
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent event) {
            if (event.getAction().equals(Action.PHYSICAL)) {
                if (event.getClickedBlock().getType().equals(Material.STONE_PLATE)) {
                    Location location = event.getClickedBlock().getLocation();
                    location.setY(location.getY()-1);
                    if(location.getBlock().getType().equals(Material.REDSTONE_BLOCK)){
                        Player player = event.getPlayer();
                        player.sendMessage("You are on a stone pressure plate on a redstone block.");
                    if(!freeze){
                    freeze = true;
                    }
                    else{
                        freeze = false;
                    }
                }
            }
        }
       
       
        }
       
    
    }
    Code:
    package me.reece.Bukkit;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerMoveEvent;
    
    public class BukkitListener implements Listener{
       
        public static Bukkit plugin;
       
        public BukkitListener(Bukkit instance){
            plugin = instance;
        }
    
        @EventHandler
        public void onPlayerMove(PlayerMoveEvent event){
            if(plugin.freeze){
                Player player = event.getPlayer();
                player.teleport(player);
            }
        }
       
    }
     
  2. Offline

    Konato_K

    @rhunter Stop abusing static
    Stop making fields public
    You didn't register your listener (the main class one)
     
  3. Offline

    rhunter

    I'm not sure what you mean. Where am I supposed to do that?
     
  4. Offline

    starwarsmace

    In the onEnable.
     
  5. Offline

    SuperOriginal

Thread Status:
Not open for further replies.

Share This Page