ServerPlugin Wenn man das erste mal den Server joint, wird man nicht automatisch teleportiert

Dieses Thema im Forum "Programmierung" wurde erstellt von 5WizzardMc(Fabi), 15. Oktober 2015.

  1. 5WizzardMc(Fabi)
    Offline

    5WizzardMc(Fabi)

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    6
    Guten Tag,

    ich programmiere gerade ein Minigame, dies ist auch schon fast fertig, aber nun habe ich folgendes Problem:

    Wenn man Joint, werden Spieler teleportiert, dies funktioniert auch, aber wenn der Spieler das erste mal Joint, wird dieser nicht teleportiert, sondern in die Welt "world" teleportiert

    Plugins auf dem Server:

    - Iconomy
    - PermissionsEx
    - Vault
    - Minigame (Mein Plugin)
    - Multiverse Core


    Code:

    Code (Text):
    1. String str = "lobby.";
    2.  
    3.  
    4.  
    5.         World w = Bukkit.getWorld(plugin.cfg.getString(str + "world"));
    6.  
    7.         double x = plugin.cfg.getDouble(str + "x");
    8.         double y = plugin.cfg.getDouble(str + "y");
    9.         double z = plugin.cfg.getDouble(str + "z");
    10.         double yaw = plugin.cfg.getDouble(str + "yaw");
    11.         double pitch = plugin.cfg.getDouble(str + "pitch");
    12.         Location loc = new Location(w, x, y, z, (float) yaw, (float) pitch);
    13.         p.teleport(loc);
    Ich freue mich auf eure Unterstützung :)



    * Habe noch eine 2. Frage:

    Wie bannt man per Bungeecord, gibt es da einen code, wie bei Bukkit
     
    #1
  2. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938
    1. Ich vermute mal, dass du das im PlayerJoinEvent versuchst. Versuch es mal mit einem Scheduler ein paar Ticks später.

    2. Nein kann man nicht "direkt". Du legst mehr oder weniger nur eine Datenbank mit gebannten Spielern an und prüfts ob der Spieler darin steht. Wenn er das tut, verhinderst du seinen Login.
     
    #2
    5WizzardMc(Fabi) gefällt das.
  3. 5WizzardMc(Fabi)
    Offline

    5WizzardMc(Fabi)

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    6
    Danke für deine Hilfe :), aber eine Frage habe ich noch, ich mache gerade ein Teamchat, das geht aber irgentwie überhaupt nicht :(

    Code (Text):
    1.     @EventHandler
    2.     public void onChat(AsyncPlayerChatEvent e) {
    3.         Player p = e.getPlayer();
    4.         if(plugin.Team1.contains(p.getName())) {
    5.             Player empfänger = (Player) Bukkit.getServer().getOnlinePlayers();
    6.             if(plugin.Team1.contains(empfänger.getName())) {
    7.                 e.getRecipients().add(empfänger);
    8.                 e.setFormat("§cTeamChat ");
    9.                 empfänger.sendMessage(e.getMessage());
    10.             }
    11.         }
    12.     }

    Also die in Team 1 sollen halt ihr privates TeamChat haben und die in Team2 + die Team3 + die Team4
     
    #3
  4. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938
    Du müsstest die Recipients einmal leeren, sonst kriegen alle die Nachricht. Danach fügst du alle aus Team1 den Recipients hinzu.
     
    #4
  5. 5WizzardMc(Fabi)
    Offline

    5WizzardMc(Fabi)

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    6
    Habe jetzt gecleart, aber geht immer noch nicht :(


    Code (Text):
    1.     @EventHandler
    2.     public void onChat(AsyncPlayerChatEvent e) {
    3.         Player p = e.getPlayer();
    4.         if(plugin.Team1.contains(p.getName())) {
    5.             Player empfänger = (Player) Bukkit.getServer().getOnlinePlayers();
    6.             e.getRecipients().clear();
    7.             if(plugin.Team1.contains(empfänger.getName())) {
    8.                 e.getRecipients().add(empfänger);
    9.                 e.setFormat("§cTeamChat ");
    10.                 empfänger.sendMessage(e.getMessage());
    11.             }
    12.         }
    13.     }
    14.  
    15.        
     
    #5
  6. JTK222
    Offline

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    665
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Also so wird es nicht funktionieren getOnlinePlayers gibt ne liste zurück und keinen einzelnen spieler.
    Am besten einmal:
    Code (Text):
    1.  
    2.     Player p = e.getPlayer()
    3.     if(plugin.Team1.contains(p.getName()))
    4.         e.getRecipients().clear();
    5.         //Wird den unteren  Code mit jedem spieler einzeln ausführen
    6.         for(Player emfaenger : Bukkit.getServer().getOnlinePlayers()){
    7.            if(plugin.Team1.contains(empfänger.getName())){
    8.               e.getRecipients().add(empfaenger);
    9.           }
    10.        }
    11.     }
    12.     e.setFormat("§cTeamChat ");
    13.  
    Desweiteren ist § unsauberer Hardcode verwende lieber die Farbformatierung von Bukkit kenne diese leider nicht da ich nicht mit bukkit arbeite.
    Die forschleife überprüft für jedenspieler ob er im Team ist das die Nachricht erhalten soll.
    Achja und man darf keine umlaute in Java verwenden deswegen würde ich dir empfehlen auf English zu programmieren.
     
    #6
  7. 5WizzardMc(Fabi)
    Offline

    5WizzardMc(Fabi)

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    6
    Danke für deine Hilfe :)
     
    #7