RegisterEvents, new event system

Discussion in 'Plugin Development' started by Adrenaline, Jan 27, 2012.

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

    Adrenaline

    Hi!,
    Someone can help me with got correct java code:

    My actual line from AuthMe.java looks like this:
    PHP:
            // Setting up the listeners
            
    this.getServer().getPluginManager().registerEvents(new AuthMePlayerListener(), this);
    But Eclipse send me error: "The constructor AuthMePlayerListener() is undefined" and give me 3 dont work fixes..:

    [​IMG]

    This is part of my AuthMePlayerListener:

    PHP:
    package de.fgtech.fabe.AuthMe.Listener;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import org.bukkit.entity.*;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.*;
    import org.bukkit.event.player.PlayerLoginEvent.Result;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.*;
     
     
    import de.fgtech.fabe.AuthMe.AuthMe;
    import de.fgtech.fabe.AuthMe.InventoryCache.InventoryArmour;
    import de.fgtech.fabe.AuthMe.LoginTimeout.LoginTimeout;
    import de.fgtech.fabe.AuthMe.MessageHandler.MessageHandler;
     
     
     
    public class 
    AuthMePlayerListener implements Listener {
        public 
    AuthMePlayerListener(AuthMe instance) {
            
    plugin instance;
        }
        private final 
    AuthMe plugin;
     
     
     
        @
    EventHandler(priority EventPriority.MONITOR)
        public 
    void onPlayerLogin(PlayerLoginEvent event) {
            
    Player player event.getPlayer();
            
    String playername player.getName();
     
  2. You don't accomplish the constructors needs:




    this.getServer().getPluginManager().registerEvents(new AuthMePlayerListener(this), this);

    You need to add "this" in "new AuthMePlayerListener(this)", because your constror of that class is expecting it that way.

    ------
    Small lesson:

    Your constructor:
    Code:JAVA
    1.  
    2. public MyClass()
    3. {}
    4.  

    Now you can construct an object via
    Code:JAVA
    1.  
    2. MyClass myObjectOfMyClass = new MyClass();
    3.  


    If you have:
    Code:JAVA
    1.  
    2. public MyClass(String someString, Player player)
    3. {
    4. this.string = someString;
    5. this.player = player;
    6. }
    7.  


    Than you have to construct an object via
    Code:JAVA
    1.  
    2. MyClass myObjectOfMyClass = new MyClass("This is the string for first parameter", currentPlayer);
    3.  


    You can still add more constructors to a class, and you decide, which one is used.
     
    Adrenaline likes this.
  3. well , you declare the constructor with a parameter of type 'AuthMe' (your main class) and later you don't pass in an argument of that type.
    so
    Code:
    this.getServer().getPluginManager().registerEvents(new AuthMePlayerListener(this), this);
    learn some java please, because this should be fixed by yourself.
     
    Adrenaline likes this.
  4. Offline

    Adrenaline

    Thx for reply, and sorry for me :S

    At console have this:
    [​IMG]

    This is issue from AuthMePlayerListener.java ?

    okay, fixed :D i use wrong version CraftBukkit hehe

    @Edit
    Moderator can close topic, resolved all

    Thx guys! :D

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 23, 2016
Thread Status:
Not open for further replies.

Share This Page