Help on event listener!

Discussion in 'Plugin Development' started by Linkupdated, Mar 28, 2011.

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

    Linkupdated

    Hi there, i need help on someting i dont know what i do wrong but my event dont register properly :(

    Code:
        static Connection conn = null;
        public static PermissionHandler Permissions;
        private final CitywarsBlockListener blockListener = new CitywarsBlockListener(this);
        private final CitywarsPlayerListener playerListener = new CitywarsPlayerListener(this);
        //public final HashMap<Player, ArrayList<Block>> citywarsUsers = new HashMap<Player, ArrayList<Block>>();
    
        /*
         * try { state = conn.createStatement();state.execute(
         * "UPDATE accounts SET accounts_online='Online' WHERE accounts_id='"
         * +User_Id+"'"); } catch (SQLException e) { e.printStackTrace(); }
         */
    
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Normal, this);
            pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Event.Priority.Normal, this);
            pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Event.Priority.Normal, this);
            pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Event.Priority.Normal, this);
    
            setupPermissions();
            System.out.println("Citywars Started ----------------------------------------------");
            this.connect();
        }
    Code:
    package me.linkupdated.citywars;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import org.bukkit.World;
    import org.bukkit.entity.Player;
    import org.bukkit.event.player.PlayerListener;
    import org.bukkit.event.player.PlayerEvent;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.inventory.ItemStack;
    
    public class CitywarsPlayerListener extends PlayerListener {
    
            public static Citywars plugin;
    
            public CitywarsPlayerListener(Citywars instance) {
                plugin = instance;
            }
    
            public void onPlayerJoin(PlayerEvent event){
                Player player = event.getPlayer();
                if(player.getDisplayName().equals("Linkupdated")){
                    player.setDisplayName("§cLink§4updated§f");
                }
            }
            public void onPlayerQuit(PlayerEvent event) {
                Player player = event.getPlayer();
                boolean PlayerFound = false;
                DateFormat format = new SimpleDateFormat("dd/MM/yyyy k:m:s");
                int i = 0;
                int SlotId = 0;
    
                //if(Citywars.Permissions.has(player, "citywars.name")) {
                try {
                    Statement stmt = Citywars.conn.createStatement();
                    ResultSet rs = stmt.executeQuery("SELECT * FROM cp_inventory WHERE cp_inventory_player_name='"+player.getDisplayName()+"'");
    
                    while (rs.next()) {
                        Pattern p = Pattern.compile("^"+rs.getString("cp_inventory_player_name")+"$");
                        Matcher m = p.matcher(player.getDisplayName());
                        if(m.find() == true){
                            PlayerFound = true;
                            try {
                                for(i=0;i<player.getInventory().getSize();i++){
                                    ItemStack item = player.getInventory().getItem(i);
                                    stmt.executeUpdate("UPDATE cp_inventory SET cp_inventory_item_id='"+ item.getTypeId() +"', cp_inventory_item_number='"+ item.getAmount() +"', cp_inventory_time='"+ format.format(new Date()) +"' WHERE cp_inventory_player_name='"+ player.getDisplayName() +"' AND cp_inventory_slot_id='"+i+"'");
                                }
                                ItemStack ArrayArmor[] = player.getInventory().getArmorContents();
                                for(i=0;i<ArrayArmor.length;i++){
                                    SlotId = i+100;
                                    stmt.executeUpdate("UPDATE cp_inventory SET cp_inventory_item_id='"+ ArrayArmor[i].getTypeId() +"', cp_inventory_item_number='"+ ArrayArmor[i].getAmount() +"', cp_inventory_time='"+ format.format(new Date()) +"' WHERE cp_inventory_player_name='"+ player.getDisplayName() +"' AND cp_inventory_slot_id='"+SlotId+"'");
                                }
                                //player.getLocation().getX();
                                //player.getLocation().getY();
                            } catch (SQLException e) {
                                System.out.println("CITYWARS MYSQL ERROR : " + e);
                            }
                            break;
                        }
                    }
                    if(PlayerFound == false){
                        try {
                            for(i=0;i<player.getInventory().getSize();i++){
                                ItemStack item = player.getInventory().getItem(i);
                                stmt.executeUpdate("INSERT INTO cp_inventory(cp_inventory_player_name, cp_inventory_slot_id, cp_inventory_item_id, cp_inventory_item_number, cp_inventory_time) VALUE('"+ player.getDisplayName() +"', '"+ i +"', '"+ item.getTypeId() +"', '"+item.getAmount()+"', '"+format.format(new Date())+"')");
                            }
                            ItemStack ArrayArmor[] = player.getInventory().getArmorContents();
                            for(i=0;i<ArrayArmor.length;i++){
                                SlotId = i+100;
                                stmt.executeUpdate("INSERT INTO cp_inventory(cp_inventory_player_name, cp_inventory_slot_id, cp_inventory_item_id, cp_inventory_item_number, cp_inventory_time) VALUE('"+ player.getDisplayName() +"', '"+ SlotId +"', '"+ ArrayArmor[i].getTypeId() +"', '"+ArrayArmor[i].getAmount()+"', '"+format.format(new Date())+"')");
                            }
                        } catch (SQLException e) {
                            System.out.println("CITYWARS MYSQL ERROR : " + e);
                        }
                    }
    
                } catch (SQLException e) {
                    System.out.println("CITYWARS MYSQL ERROR : " + e);
                }
                //}
            }
            public void OnPlayerMove(PlayerMoveEvent event){ //THIS FUNCTION DONT EXECUTE ??
                World world = plugin.getServer().getWorld("valia2");
                System.out.println(event.getEventName()+" "+world.getName()+" => "+world.getTime());
                if(world.getTime() >= 12000){
                    world.setTime(0);
                }
            }
    }
    
    i want to know why my function dont register..
     
  2. Offline

    Sammy

    Is it only OnPlayerMove that doesn't work ?
    I'm not seeing any errors, try updating bukkit and craftbukkit
     
  3. Offline

    Edward Hand

    Function names are case sensitive.
    Change:
    Code:
    OnPlayerMove
    to
    Code:
    onPlayerMove
     
  4. Offline

    Sammy

    I think we understood me Edward ^^
     
  5. Offline

    Linkupdated

    thanks it works :p
    sorry for my mistake.
     
Thread Status:
Not open for further replies.

Share This Page