ServerPlugin Countdown Dann reload

Dieses Thema im Forum "Programmierung" wurde erstellt von craftingyourself, 18. Dezember 2012.

  1. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    hey ich habe mir ein Countdown reload plugin gemacht das plugin zählt erst von 10 - 0 und dann soll ein reload kommen aber irgend wie bekomme ich immer ein Fehler ich habe zu erst ein normalen reload gemacht dann mein reload Command /reload1 weil wenn ich /reload mache macht der mir in minecraft /CYSSystem:reload




    mein Code



    Die server log


    Mal in Spoiler gepackt > Christian
     
    #1
  2. Gleydar
    Offline

    Gleydar Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    443
    Ort:
    player.getHome()
    Minecraft:
    Gleydar
    Überprüfe mal Zeile 44 in deinem Plugin, da scheint es einen Fehler zu geben.
     
    #2
  3. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Mal eine Frage vorweg:
    Wieso schläferst du den Main-Thread des Servers ein?
    Da hängt sich nämlich der ganze Server auf, falls du das noch nicht bemerkt hast.
    Versuches es mal mit einem Bukkit-Scheduler, der ist extra für RepeatingTasks, RelayedTasks, etc. gemacht.

    Und poste mal bitte den Konstrukt, in welchem Zeile 44 steht.
     
    #3
  4. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    ah ok danke das wahr nur ein alter public static boolean aber daran liegt es nicht


    ach ja in minecraft bekomme ich auch die message

    An internal error occurred while attempting to perform this command

    neue LOG

    Code (Text):
    1. 2012-12-18 18:08:31 [INFO] Starting minecraft server version 1.4.52012-12-18 18:08:31 [INFO] Loading properties
    2. 2012-12-18 18:08:31 [INFO] Default game type: SURVIVAL
    3. 2012-12-18 18:08:31 [INFO] Generating keypair
    4. 2012-12-18 18:08:31 [INFO] Starting Minecraft server on *:25565
    5. 2012-12-18 18:08:31 [WARNING] **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
    6. 2012-12-18 18:08:31 [WARNING] The server will make no attempt to authenticate usernames. Beware.
    7. 2012-12-18 18:08:31 [WARNING] While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
    8. 2012-12-18 18:08:31 [WARNING] To change this, set "online-mode" to "true" in the server.properties file.
    9. 2012-12-18 18:08:31 [INFO] This server is running CraftBukkit version git-Bukkit-1.4.5-R0.2-b2488jnks (MC: 1.4.5) (Implementing API version 1.4.5-R0.2)
    10. 2012-12-18 18:08:31 [INFO] [CYSSystem] Loading CYSSystem v3.0
    11. 2012-12-18 18:08:31 [INFO] Preparing level "world"
    12. 2012-12-18 18:08:32 [INFO] Preparing start region for level 0 (Seed: 74471000)
    13. 2012-12-18 18:08:32 [INFO] ----- Bukkit Auto Updater -----
    14. 2012-12-18 18:08:32 [INFO] It appears that you're running a Beta Build, when you've specified in bukkit.yml that you prefer to run Recommended Builds.
    15. 2012-12-18 18:08:32 [INFO] If you would like to be kept informed about new Beta Build releases, it is recommended that you change 'preferred-channel' in your bukkit.yml to 'beta'.
    16. 2012-12-18 18:08:32 [INFO] With that set, you will be told whenever a new version is available for download, so that you can always keep up to date and secure with the latest fixes.
    17. 2012-12-18 18:08:32 [INFO] If you would like to disable this warning, simply set 'suggest-channels' to false in bukkit.yml.
    18. 2012-12-18 18:08:32 [INFO] ----- ------------------- -----
    19. 2012-12-18 18:08:32 [INFO] Preparing start region for level 1 (Seed: 74471000)
    20. 2012-12-18 18:08:32 [INFO] Preparing start region for level 2 (Seed: 74471000)
    21. 2012-12-18 18:08:33 [INFO] [CYSSystem] Enabling CYSSystem v3.0
    22. 2012-12-18 18:08:33 [INFO] [CYSSystem] Plugin by Nepster
    23. 2012-12-18 18:08:33 [INFO] [CYSSystem] Version
    24. 2012-12-18 18:08:33 [INFO] [CYSSystem] Plugin aktiviert!
    25. 2012-12-18 18:08:33 [INFO] Server permissions file permissions.yml is empty, ignoring it
    26. 2012-12-18 18:08:33 [INFO] Done (1,147s)! For help, type "help" or "?"
    27. 2012-12-18 18:08:34 [INFO] RaPpeR200[/127.0.0.1:52919] logged in with entity id 152 at ([world] 1289.8152452308536, 63.0, -299.5694617855742)
    28. 2012-12-18 18:08:34 [INFO] [32;1mRaPpeR200 betritt den Server[m
    29. 2012-12-18 18:08:38 [INFO] RaPpeR200 issued server command: /reload1
    30. 2012-12-18 18:08:38 [INFO] [31;22m[Reload In] 10[m
    31. 2012-12-18 18:08:39 [INFO] [31;22m[Reload In]  9[m
    32. 2012-12-18 18:08:40 [INFO] [31;22m[Reload In]  8[m
    33. 2012-12-18 18:08:41 [INFO] [31;22m[Reload In]  7[m
    34. 2012-12-18 18:08:42 [INFO] [31;22m[Reload In]  6[m
    35. 2012-12-18 18:08:43 [INFO] [31;22m[Reload In]  5[m
    36. 2012-12-18 18:08:44 [INFO] [31;22m[Reload In]  4[m
    37. 2012-12-18 18:08:45 [INFO] [31;22m[Reload In]  3[m
    38. 2012-12-18 18:08:46 [INFO] [31;22m[Reload In]  2[m
    39. 2012-12-18 18:08:47 [INFO] [31;22m[Reload In]  1[m
    40. 2012-12-18 18:08:48 [INFO] [31;22m[Reload] NOW[m
    41. 2012-12-18 18:08:48 [INFO] [CYSSystem] Disabling CYSSystem v3.0
    42. 2012-12-18 18:08:48 [INFO] [CYSSystem] Plugin deaktiviert!
    43. 2012-12-18 18:08:48 [INFO] 208 recipes
    44. 2012-12-18 18:08:48 [INFO] [CYSSystem] Loading CYSSystem v3.0
    45. 2012-12-18 18:08:48 [INFO] [CYSSystem] Enabling CYSSystem v3.0
    46. 2012-12-18 18:08:48 [INFO] [CYSSystem] Plugin by Nepster
    47. 2012-12-18 18:08:48 [INFO] [CYSSystem] Version
    48. 2012-12-18 18:08:48 [INFO] [CYSSystem] Plugin aktiviert!
    49. 2012-12-18 18:08:48 [INFO] Server permissions file permissions.yml is empty, ignoring it
    50. 2012-12-18 18:08:48 [SEVERE] null
    51. org.bukkit.command.CommandException: Unhandled exception executing command 'reload1' in plugin CYSSystem v3.0
    52.     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    53.     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
    54.     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:502)
    55.     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:985)
    56.     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:903)
    57.     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:858)
    58.     at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
    59.     at net.minecraft.server.NetworkManager.b(NetworkManager.java:290)
    60.     at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:113)
    61.     at net.minecraft.server.ServerConnection.b(SourceFile:39)
    62.     at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    63.     at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:595)
    64.     at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:222)
    65.     at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493)
    66.     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426)
    67.     at net.minecraft.server.ThreadServerApplication.run(SourceFile:856)
    68. Caused by: java.lang.NullPointerException
    69.     at me.nepster.main.main.onCommand(main.java:239)
    70.     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    71.     ... 15 more
    72. 2012-12-18 18:08:48 [WARNING] Can't keep up! Did the system time change, or is the server overloaded?
    73.  
    74.  
    75.  
    Mal in Spoiler gepackt > Christian
     
    #4
  5. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    1. Ohne Sourcecode kann dir keiner helfen.
    2. Warum zur Hölle frierst du den main thread ein?
    3. Schonmal was von schleifen, threads oder dem bukkit scheduler gehört?
     
    #5
  6. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    2. Warum zur Hölle frierst du den main thread ein?
    3. Schonmal was von schleifen, threads oder dem bukkit scheduler gehört?

    Ich bin noch kein profi in java habe mir nur den original command aus bukkit genommen






    Mal in Spoiler gepackt > Christian
     
    #6
  7. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Postest du bitte den GANZEN sourcecode und nicht immer nur Ausschnitte.
    Hier rauf: http://pastebin.com

    Bitte?
    Schleifen sind ja wohl das absolute minimum von dem was man können sollte.
    Kannst du überhaupt java oder kopierst du dir alles nur aus Tutorials zusammen?
    Hier lies das und zwar ganz: http://openbook.galileocomputing.de/javainsel/
     
    #7
  8. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    1 mache ich sicher nicht weil da ist ein 1gg1 plugin Usw drin


    2 doch weil ich aber ich weiß jetzt nicht wie du das meinst






    Warum zur Hölle frierst du Den Haupt-Thread Ein?
    Schonmal war von schleifen, Themen oder DEM bukkit Scheduler Gehört?
     
    #8
  9. Smuil
    Online

    Smuil

    for und when schleifen sind so meistens einfach die ersten Dinge die du bei jeder Programmiersprache eig lernst. Du kannst mir einfach nicht erzählen, dass du die nicht kennst und nicht weißt was Benni meint....wieso besitzt du diese Auszeichnung?
     
    #9
  10. ChristianG
    Online

    ChristianG

    Wenn der gesamte Source Code so Top Secret ist, kannst du dann bitte den Code posten, der relevant ist. Das sollte man differenzieren können...

    BTW Du kennst keine Loops OMG das ist echt ungefähr das erste nach dem Hello World Programm...
     
    #10
  11. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    Ich raffe gerade nix
    1. der Countdown geht ja nur der reload nicht
    2. Habe ich doch alles oben rein geschrieben vom plugin also der Reload teil

    Soll ich schleifen beim reload oder beim Countdown
     
    #11
  12. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Eine endlose Schleife beim Reload ;-)
    //Ironie aus
    Ein bisschen mitdenken wäre aber schon angesagt - wenn du dich schon an BukkitPlugins heranwagst, sollte man vorraussetzen können, dass du wenigstens die Handhabung von Schleifen beherrscht.
    Was machen Schleifen grob?
    Einen Konstrukt so oft ausführen, bis false zurückgegeben wird - also die Bedingung nicht mehr erfüllt wird.

    Wo kannst du also eine Schleife sinnvoll anwenden? Beim Reload oder Countdown?
     
    #12
  13. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    Äh fail ja Countdown aber wie kann ich das mit der schleife machen
     
    #13
  14. Granatapfel
    Offline

    Granatapfel

    Registriert seit:
    29. August 2012
    Beiträge:
    101
    Ort:
    Deutschland
    Minecraft:
    Der_Granatapfel
    Link

    Kannst du mal einen Link posten? Ich suche so ein plugin schon lange
     
    #14
  15. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    Erklärung

    "2. Warum zur Hölle frierst du den main thread ein?
    3. Schonmal was von schleifen, threads oder dem bukkit scheduler gehört?" Zitat ende.
    Ich möchte das hier nur einmal aufklären. 2. Mit dem main thread ist gemeint das der Server ja keine oberfläche ist auf der du wirklich "oben" bist. Du spielst ja in wirklichkeit auf deinem eigenen Computer wobei du und der Server dauerhaft Informationen austauscht. Diese Informationen werden durch einen eigenen Thread den jeder Spieler selbst hat geregelt doch die Verarbeitung dieser Informationen erfolgt durch den Hauptthread. durch den code: thread.sleep(Example); frierst du eben diesen Hauptthread ein. Dadurch kann der Server dinge nichtmehr tun wie z.B neue Chunks laden, Spieler joinen lassen und noch viel mehr.
    3.Mit schleifen,threads und dem bukkit scheduler ist gemeint das du ohne z.B 10 broadcasts dies machen könntest mit einer ganz einfachen while Schleife z.B mit dem ganz einfachen code z.B:
    int i = arg[0];
    while(i != 0){
    Bukkit.broadcast("Reload in " + i);
    i -1;
    }
    Hier mal ohne verzögerung :D.Das mit den threads heist einfach das du um das ganze hier zu machen ohne den Hauptthread zu killen einfach einen neuen Thread für dieses "sleep" machen musst oder eben mit den schedueler von bukkit der genau dafür gemacht wurde zu arbeiten. Der Schedueler kann nämlich einen code nach bestimmter zeit nochmal ausführen wie eine schleife und das OHNE den Hauptthread zu killen.
    So alles erklärt lg Funzocker1.
    Ps: Sorry wenn in dem Code oder der Erklärung ein Fehler ist doch ich bin grad extrem unkonzentriert :(.
     
    #15
  16. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Da hast du aber ein paar Fehler drin.
    Code (Text):
    1.  
    2. try
    3. {
    4.     int i = Integer.parseInt(args[0]);
    5.     while(i != 0)
    6.     {
    7.         Bukkit.broadcastMessage("Reload in " + i);
    8.         i = i - 1;
    9.     }
    10. } catch (Exception e) {}
     
    #16
  17. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    oh

    Oh ja sorry doch ohne eclipse und ohne konzentration :/
     
    #17
  18. craftingyourself
    Offline

    craftingyourself

    Registriert seit:
    21. September 2012
    Beiträge:
    270
    hast du mal vom bukkit scheduler gehört nein bin noch etwas neu aber schleifen kenn ich mich aus ich kann es auch so machen

    nur wie bekomme ich da einen Timer Rein !

    for(int i=10; i>10; i--){

    System.out.println("Reload in" + i")

    }

    MFG

    Craftingyourself
     
    #18
  19. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Probiers mal in der Art:
    Code (Text):
    1.  
    2. int t = 0;
    3. for(int i=10; i>10; i--)
    4. {
    5.     t = t + 20;  
    6.     Bukkit.broadcastMessage("Reload in " + i + " Sekunden!");
    7.     scheduler(t);
    8. }
    9.  
    Dann legst du noch die Methode scheduler an, in den Konstruktor kommt dann Integer t, welchen du als Delay festlegst.
     
    #19