Beiträge von Pierre

    Mir geht's prinzipiell darum, dass er im JoinEvent einfach alles machen kann was er will, zB Scoreboards erstellen, Nachrichten senden, Items mit Namen geben. Und nicht, dass er dafür ein neues Event nutzen muss, finde ich von der Usability nicht allzu geil. Aber naja, wenn es soweit kommt

    Naja, ich möchte das ganze gerne synchron machen, gehen wir davon aus, dass ich ein Inventar mit Items erstellen möchte. Das endet ja in zig tausend consumern und sieht einfach nicht gut aus imo. Deswegen möchte ich gerne, dass das JoinEvent erst gecallt wird, wenn die richtige locale da ist.

    Moin,


    Arbeite aktuell an einer Bibliothek die mir auch Nachrichten in mehreren Sprachen basierend auf der Client sprache holen und ausgeben kann. Problem ist, dass das Paket welches die Clientsprache an den Server sendet, kommt erst nach dem JoinEvent. Aktuell habe ich deswegen folgendes:


    Ich mag das persönlich mit den ganzen consumern nicht, da das schnell in verschachtelung resultieren kann. Ich weiß aber nicht, wie ich das so umsetzen kann, dass das ganze System noch einfach als Bibliothek nutzbar ist. Somit möchte ich ungern auf das Player JoinEvent verzichten. Keine Ahnung ob man das irgendwie cool umsetzen kann, dass das PlayerJoinEvent verzögert wird, sobald die locale da ist oder so. Keine Ahnung wie man das am besten machen kann.

    Moin,


    da mir irgendwie niemand irgendwie weiterhelfen kann stelle ich meine Frage auch nochmal hier.

    Folgendes Entity:

    Und folgende Repository:

    Das Problem liegt in dem Fall bei findByUuid. findByName und findAll funktioniert ohne Probleme.

    NPE:

    Ey, bitte. Lern erstmal zu programmieren bevor du sowas machst.

    Zum einen sollst du eine Instanz deines Plugins (-> Main) übergeben, und nicht einfach deinen Listener zu Plugin casten.

    Zum anderen, was soll das hier?

    Code
    Player player = Bukkit.getPlayerExact("Example");

    Im onEnable ausgehenden PluginChannel registrieren

    Java
    this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");

    Und nicht irgendwie Bungee-1 oder was auch immer für ein Müll, der Channel heißt BungeeCord. Punkt aus ende.


    Und in deinem Event baust du die Nachricht und schickst die vom Spieler ausgehend

    Java
    ByteArrayDataOutput out = ByteStreams.newDataOutput();
    out.writeUTF("Connect"); // Das lässt du so, das ist so gesehen die Aktion die ausgeführt wird -> Mit Server VERBINDEN
    out.writeUTF("pvp"); // pvp ist hier der Servername
    player.sendPluginMessage(this, "BungeeCord", out.toByteArray());