Probleme mit PlayerChatEvent

Dieses Thema im Forum "Server Plugins" wurde erstellt von Lanzettlich, 11. September 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Lanzettlich
    Offline

    Lanzettlich

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    [font='Arial, Helvetica, sans-serif']Hallo![/font]
    [font='Arial, Helvetica, sans-serif']
    [/font]
    [font='Arial, Helvetica, sans-serif']In einem Plugin von mir habe ich ein onPlayerChatEvent eingebaut.[/font]
    [font='Arial, Helvetica, sans-serif']Wenn ein Player chattet (egal was), will ich, dass der Player immer einen im Plugin eingestellten Text schreibt.[/font]
    [font='Arial, Helvetica, sans-serif']Also hab ich das so gemacht:[/font]
    Code (Text):
    1.     @EventHandler   public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent ev) {        ev.getPlayer.chat("Hallo");
    2.     ev.setCancelled(true);
    3.     }
    [font='Arial, Helvetica, sans-serif']
    [/font]
    Wenn ein Player chattet wird ingame zwar "Hallo" geschrieben, in der Console kommt aber eine zirka 2000-Zeilen lange Fehlermeldung.
    Angefangen mit:

    2012-09-11 19:03:33 [SEVERE] Could not pass event AsyncPlayerChatEvent to Test
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:830)
    at org.bukkit.craftbukkit.entity.CraftPlayer.chat(CraftPlayer.java:232)
    at me.Lanzettlich.Test.Test.onAsyncPlayerChatEvent(Information.java:74)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)


    Ich hoffe, dass mir schnell geholfen werden kann ! :)
     
    #1
  2. Sn0wBlizz4rdalt
    Offline

    Sn0wBlizz4rdalt Gesperrt

    Registriert seit:
    5. Dezember 2011
    Beiträge:
    311
    Nimm nicht onPlayerAsyncChatEvent, sondern nur onPlayerChatEvent.
    Kann sein das ich mich vertuhe, ich bin sehr Müde :)
     
    #2
  3. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Die Methode OnPlayerChatEvent ist als Deprecated gekenntzeichnet, sie sollte also unter keinen umständen weiter verwendet werden.
    Tolle tipps gibst du hier Sn0w :thumbsup:


    Versuchs mal so:
    Code (Text):
    1. @EventHandler
    2.     public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent ev) {
    3.         ev.setMessage("hier steht ein text");
    4.     }
     
    #3
  4. Lanzettlich
    Offline

    Lanzettlich

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    Wenn ich nur das onPlayerChatEvent nehme, wird es durchgestrichen auch wenn ich supress warnings hinzufüge. Außerdem kommt der gleiche Fehler wie mit dem asyncplayerchatevent. :(
     
    #4
  5. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Versuchs mal mit meiner lösung?
    Getestet hab ich sie nicht aber sie müsste funktionieren.
     
    #5
  6. Sn0wBlizz4rdalt
    Offline

    Sn0wBlizz4rdalt Gesperrt

    Registriert seit:
    5. Dezember 2011
    Beiträge:
    311
    Merkwürdig, meine Methode funktioniert bei mir ?(
    PS: Lieber Benni, bitte entferne deine Bewertung.
    Ich hab ja gesagt ich glaub das es falsch ist, und das
    Es komischerweise bei mir funktioniert. Ich sag's mal so,
    Ich arbeite hart für die Rennommee, und sie wird eigentlich
    Sinnlos wieder entfernt.
     
    #6
  7. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Natürlich funktioniert die Methode weiterhin, aber alles was als Deprecated gekenntzeichnet ist wird in den nächsten versionen entfernt werden.
    Deshalb sollte man niemals Deprecated Methoden verwenden.
     
    #7
  8. Lanzettlich
    Offline

    Lanzettlich

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    Danke deine Lösung funktioniert!!!

    :)
     
    #8
  9. Sn0wBlizz4rdalt
    Offline

    Sn0wBlizz4rdalt Gesperrt

    Registriert seit:
    5. Dezember 2011
    Beiträge:
    311
    Schon, aber die Bewertung war unnötig da meine Methode funktioniert ;)
    Das mit Deprecatet war klar, nur ich wusste Grade keine bessere Lösung da
    Ich wie genannt Hunde-Müde bin :D
     
    #9
Status des Themas:
Es sind keine weiteren Antworten möglich.