ServerPlugin Brauche dringen Hilfe bei einem Coutdown.

Dieses Thema im Forum "Programmierung" wurde erstellt von HerrSnow, 21. Februar 2016.

  1. HerrSnow
    Offline

    HerrSnow

    Registriert seit:
    1. November 2015
    Beiträge:
    1
    Code (Text):
    1. package me.herrsnow.main;
    2.  
    3.  
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerJoinEvent;
    11. import org.bukkit.plugin.Plugin;
    12.  
    13.  
    14. public class Start implements Listener{
    15.  
    16.     @EventHandler
    17.     public void onJoin(PlayerJoinEvent event) {
    18.         Player player = (Player)event.getPlayer();
    19.         if(player.getServer().getOnlinePlayers().size() >= 1){
    20.             player.getServer().broadcastMessage(ChatColor.YELLOW +">> Adventure" +ChatColor.WHITE +" | " + ChatColor.GRAY + "Spiel startet in 10sec");
    21.             Bukkit.getScheduler().runTaskLaterAsynchronously((Plugin) this, new Runnable() {
    22.              
    23.                 @Override
    24.                 public void run() {
    25.                     player.sendMessage("§4§lTest ");
    26.                     // TODO Auto-generated method stub
    27.                  
    28.                 }
    29.             }, 5*20);
    30.         }
    31.     }
    32.      
    33.  
    34. }
    35.      
    Ich bekomme die Nachricht nicht ,die eigentlich nach 5sec kommen sollte
     
    #1
  2. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    590
    1. Code formatieren
    2. Problem beschreiben
    3. Doku lesen
     
    #2
  3. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Hallo,

    1. Wird ein asynchroner Scheduler für deine Zwecke nicht benötigt und falls doch, dann bitte keine Bukkit Methoden in einem asynchronen Runnable
    2. Musst du eine Instanz deiner Hauptklasse (eines Plugin(s)) übergeben und nicht deine Start-Klasse zu einem Plugin casten

    Fehler sind dick hervorgehoben:
    Des Weiteren brauchst du den Player nicht casten...
    PS: Um deine Fehler zu beheben, werden natürlich Java-Basics vorausgesetzt ;)
     
    #3
    skcxck gefällt das.
  4. Microsamp
    Offline

    Microsamp

    Registriert seit:
    30. Mai 2015
    Beiträge:
    20
    Die player.sendMessage(String) Methode ist hier eine Ausnahme, da diese laut Bukkit Thread-Safety ist und somit gerne verwendet werden kann. Der Rest stimmt von deinen Aussagen. Ps: Viele Methoden der API sind Thread-Safety, aber vor allem darf niemals die Welt Asynchron bearbeitet werden.
     
    #4