Solved registerEvents error

Discussion in 'Plugin Development' started by AztroCreationz, Jun 13, 2015.

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

    AztroCreationz

    Hello! I am trying to make a plugin, but the registerEvents() method gives me this error:

    The method registerEvents(Listener, Plugin) in the type PluginManager is not applicable for the arguments (EventHandlers, ZyphicxRPG)

    Here is my main class:

    Code:
    package com.gmail.zyphicxs.ZyphicxRPG;
    
    import java.util.HashMap;
    import java.util.Random;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class ZyphicxRPG extends JavaPlugin{
       
        @Override
        public void onEnable(){
            Bukkit.getServer().getPluginManager().registerEvents(new EventHandlers(), this); // This is where I get the problem
           
            getLogger().info("ZyphicxRPG is now enabled!");
           
            new Random();
        }
       
        @Override
        public void onDisable(){
            getLogger().info("ZyphicxRPG is now disabled!");
        }
       
        HashMap<Player, Boolean> dodge = new HashMap<>();
        Inventory inv = Bukkit.createInventory(null, 90, "Trading market");
        Inventory classChoose = Bukkit.createInventory(null, 9, "Classes");
       
        Random random = new Random();
       
    
    
       
    }
    
    Here is my Listener class:

    Code:
    package com.gmail.zyphicxs.ZyphicxRPG;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Effect;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityDamageEvent;
    import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class EventHandlers extends Items implements Listener{
       
        @EventHandler
        public void onEntityDamageByEntity(EntityDamageByEntityEvent event){
           
            Entity hurt = event.getEntity();
           
            if(dodge.get(hurt) == true){
                event.setCancelled(true);
                int teleportRandom = random.nextInt((4 - 0) +1 ) + 0 - 2;
                int xy = random.nextInt((2 - 1) + 1) + 1;
               
                Location loc = null;
               
                if(xy == 1){
                    loc = hurt.getLocation().add(teleportRandom, 0, 0);
                }
                else if(xy == 2){
                    loc = hurt.getLocation().add(0, 0, teleportRandom);
                }
                World world = hurt.getWorld();
               
                world.playEffect(hurt.getLocation(), Effect.ENDER_SIGNAL, 31);
               
                if(loc.getBlock().getType() == Material.AIR){
                    hurt.teleport(loc);
                }
               
            }
           
    
           
        }
       
        public void classChooser(final Player player){
            ItemMeta meta = (ItemMeta) dagger.getItemMeta();
            meta.setDisplayName("Ninja");
            dagger.setItemMeta(meta);
           
            meta = wand.getItemMeta();
            meta.setDisplayName("Wizard");
            wand.setItemMeta(meta);
           
            meta = axe.getItemMeta();
            meta.setDisplayName("Warrior");
            axe.setItemMeta(meta);
           
            meta = bow.getItemMeta();
            meta.setDisplayName("Archer");
            bow.setItemMeta(meta);
           
            classChoose.setItem(1, dagger);
            classChoose.setItem(3, wand);
            classChoose.setItem(5, axe);
            classChoose.setItem(7, bow);
           
            Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(this, new Runnable(){
                public void run(){
                player.openInventory(classChoose);
                }
                }, 20);
        }
       
    /*   
    *  @EventHandler
        public void onPlayerInteractEntity(PlayerInteractEntityEvent event){
            Entity entity = event.getRightClicked();
            Player player = event.getPlayer();
            player.sendMessage("You are now riding an entity!");
           
            entity.setPassenger(player);
        }
        */
       
        @EventHandler
        public void allDamage(EntityDamageEvent event){
            if(event.getCause() == (DamageCause.FALL)){
                event.setCancelled(true);
            }
        }
       
        @EventHandler(priority = EventPriority.HIGHEST)
        public void playerJoin(PlayerJoinEvent event){
            final Player player = event.getPlayer();
    
            classChooser(player);
        }
       
        @EventHandler
        public void inventoryClick(InventoryClickEvent event){
            Player player = (Player) event.getWhoClicked();
            if(event.getInventory().equals(classChoose)){
               
                if(event.getCurrentItem().equals(dagger)){
                    player.sendMessage(ChatColor.GRAY + "You selected Ninja!");
                    player.closeInventory();
                }           
               
                else if(event.getCurrentItem().equals(wand)){
                    player.sendMessage(ChatColor.DARK_PURPLE + "You selected Wizard!");
                    player.closeInventory();
                }
               
                else if(event.getCurrentItem().equals(axe)){
                    player.sendMessage(ChatColor.RED + "You selected Warrior!");
                    player.closeInventory();
                }
               
                else if(event.getCurrentItem().equals(bow)){
                    player.sendMessage(ChatColor.YELLOW + "You selected Archer!");
                    player.closeInventory();
                }
               
            }
        }
    
    }
    
     
  2. Offline

    TheDiamond06

    @AztroCreationz I'm pretty sure your main class has to be a listener also
     
  3. Offline

    AztroCreationz

    @TheDiamond06 Nope, that shouldn't be it. I tried it, but it didn't work! :/

    Eclipse is really weird, I just changed something else, and now it works!
     
    Last edited by a moderator: Jun 13, 2015
  4. @TheDiamond06E it only needs to implement listener if it is using an event.
     
Thread Status:
Not open for further replies.

Share This Page