Alle Spieler von einer ArrayList<Player> teleportieren

Dieses Thema im Forum "Programmierung" wurde erstellt von Nexus15, 10. Januar 2013.

  1. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    91
    Hallo,
    Ich möchte alle Spieler von einer ArrayList<Player> zu einer Location teleportieren.

    Hier mein Versuch :

    try {
    Connection conn = DriverManager.getConnection(url, user, pass);
    stmt = conn.createStatement();
    rs = stmt.executeQuery("SELECT x, y, z FROM arena WHERE name='"+servern+"'");
    while(rs.next()) {
    double endX = rs.getDouble(1);
    double endY = rs.getDouble(2);
    double endZ = rs.getDouble(3);
    Location vector = p.getLocation();
    vector.setX(endX);
    vector.setY(endY);
    vector.setZ(endZ);
    for(Player pw : plugin.getServer().getOnlinePlayers()){
    if(players.contains(pw)){
    pw.teleport(vector);
    }

    }
    }
    rs.close();
    stmt.close();
    conn.close();
    } catch (SQLException ex) {
    Logger.getLogger(GListener.class.getName()).log(Level.SEVERE, null, ex);
    }
     
    #1
  2. Cabraca
    Online

    Cabraca

    Du Speicherst vermutlich das komplette Playerobjekt in der ArrayList.
    Das Problem ist dass das Playerobjekt auch die location enthält welche sich relativ oft ändert.
    Sprich sobald der Spieler sich bewegt ist das Playerobjekt was du gespeichert hast nicht mehr gleich dem aktuellen Objekt.
    Das was du machen könntest wäre anstatt dem Playerobjekt einfach den Spielernamen zu speichern.
     
    #2
  3. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    91
    ah.. stimmt.. werde ich mal versuchen

    Danke :D
     
    #3
  4. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Würde im Grunde genommen so gehen:
    Code (Text):
    1.  
    2. for(String playername : arraylist)
    3. {
    4.     try
    5.     {
    6.         Player player = Bukkit.getPlayer(playerlist);
    7.         player.teleport(location);
    8.     } catch (Exception e) {}
    9. }
    10.  
     
    #4