Plugin API - Wehre schön, wenn & Fehlerberichte - It would be nice, if & bug reports

  • :nerd:ich habe einen Workaround gefunden, ich Phase mir die Steam Profiel Seite nach dem Profielbild, das ist allerdings recht Internet lastig und das Phasen dauert auch seine Zeit||


    Code
    Document doc = Jsoup.connect("https://steamcommunity.com/profiles/"+resultDB.getString("uid")).get();
    Elements newsHeadlines = doc.select("img");
    for (Element headline : newsHeadlines) {
    if ( headline.absUrl("src").contains("_full") && !headline.absUrl("src").contains(".gif") ) {
    url = headline.absUrl("src");
    }
    }
    if (url!=null) image = TextureAsset.loadFromURL(url); else image = null;


    ^^also wenn es zu Umfangreich wird, das Spielerbild vom Spile zu bekommen, dann Bitte gaz hinten mit auf die Liste.

  • :saint: red51, du hast doch zugriff auf einiege Steam Daten, zumindestens die ID und das Profielbild.

    Leider ist das etwas komplizierter :saint: Das Spiel hat über die Steam API tatsächlich Zugang zum Avatar, das Problem ist aber leider, dass der Server das nicht hat (bzw. Steams GameServer API keine Funktionen dafür bietet, sofern ich nichts übersehen habe)... die Plugin API kann also nicht direkt die Steam-API verwenden. Würde die Plugin API stattdessen clientseitige Funktionen zum Auslesen des Avatars verwenden, würde das nur im Singleplayer klappen, nicht aber im Multiplayer (wenn die API auf einem Server läuft). Hinzu kommt aber leider auch, dass das dann nur bei Steam-Usern funktionieren würde...


    Ggf. wäre es überlegenswert, dass der Client künftig sonst einfach selbst seinen Avatar an den Server sendet. Dann könnte sowas natürlich auch über die API zugänglich gemacht werden. Ich packe das mal auf unsere Liste. Spätestens wenn das Spiel das irgendwofür benötigt (um zB die Avatare in der Spielerliste anzuzeigen o.ä), würden wir sowas einbauen ^^

  • red51 sag mal, hast du bei den Plugin's ein *.rar Loader eingebaut?
    War das schon immer da?


    Ich hatte die Arcive im Plugin Ordner (Das letzte Tiefgreifende ändereung war Ordner Umbenennen) mein Update Verlauf.
    Ich konnte meinen Server nicht mehr starten:

    was ich mir erstmal nicht erklären konnte und immer noch ein ? hat.


    Mein Bauch gefühl hat mir gesagt "Verschiebe mal die RAR's" und siehe da es läst sich wieder ohne Probleme Starten. Meine Vermutung liegt auf der Ordner Umbenennung und es gab dann Real den "ToolsAPI" ordner und im RAR den "0ToolsAPI" mit dem gleichen Plugin :thinking:

    Ich fande das Phenomän recht seltsam und wollte dir das mal Berichten.

  • Noch eine kleinigkeit :D kannst du die Anzeige für die Areas noch etwas Optiemieren, so das zwei Areas die direckt an ein ander Liegen nicht mehr so Flackern. Das müsste doch auch mit diesem leichten Versatz klappen?

  • red51 sag mal, hast du bei den Plugin's ein *.rar Loader eingebaut?

    Nein, eigentlich nicht :wat: Lädst du das Plugin via .jar, oder direkt die class-Dateien (oder compilierst du das Plugin on-the-fly mit einer "projectinfo.txt")? Das Spiel versucht beim Laden die Loadorder zu bestimmen und prüft im Grunde diese 3 Fälle. Problematisch wird es, wenn bspw. mehrere .jar Dateien in einem Plugin-Ordner vorhanden sind, oder wenn es eine zusätzliche classinfo.txt gibt, oder wenn eine zusätzliche projectinfo.txt existiert.


    Gibt es denn an sich immernoch Probleme mit der Loadorder (wie hier erwähnt)?


    Noch eine kleinigkeit :D kannst du die Anzeige für die Areas noch etwas Optiemieren, so das zwei Areas die direckt an ein ander Liegen nicht mehr so Flackern. Das müsste doch auch mit diesem leichten Versatz klappen?

    Oh, danke für den Hinweis, ja, das können wir mit dem nächsten Update anpassen :)

  • Nein, eigentlich nicht :wat:

    :thinking:Mysteriös
    Ich benutze den*.jar Loader:Din die anderen Beiden Sachen habe ich mich noch nicht eingearbeitet (was der Bauer nicht Kennt:saint:)

    Vieleicht war das auch etwas mit NetBeans, jedenfalls klappt es jetzt wieder

    Gibt es denn an sich immernoch Probleme mit der Loadorder (wie hier erwähnt)?

    Nein, bislang alles Super mit der Loader Reienfolge:thumbup:


    mit dem nächsten Update

    :love:

  • :thinking: Mysteriös

    In der Tat :monocle: Das deutet aber tatsächlich eher auf einen (versteckten) Bug im Spiel hin. Die Meldung Comparison method violates its general contract! kommt beim bestimmen der Loadorder. Ich vermute, dass während des Sortierens der Plugins plötzlich eine andere Loadorder für ein Plugin erkannt wird (warum auch immer)...


    Wenn das nochmal auftritt oder du einen Weg findest, das zu reproduzieren, lass es mich bitte wissen :)


    Ich benutze den*.jar Loader :D in die anderen Beiden Sachen habe ich mich noch nicht eingearbeitet (was der Bauer nicht Kennt :saint: )

    Also falls du an Plugins lokal auf deinem Computer arbeitest, dann ist die Variante mit dem dynamischen Kompilieren (über eine "projectinfo.txt") am Schnellsten :saint: Du kannst dann (während das Spiel läuft) einfach eine Änderung am Code vornehmen und musst im Spiel dann nur rp eingeben zum Neuladen - das Spiel kompiliert das Plugin dann selbst neu und kopiert alle nötigen Daten. Der Vorteil ist im Prinzip der, dass du nicht selber kompilieren und keine Dateien verschieben musst. Ist im Grunde ein bisschen wie ein Hot-Reload ^^


    Um das zu verwenden, musst du alle .jars aus dem Plugin-Ordner im Spiel entfernen und dann dort stattdessen eine "projectinfo.txt" anlegen. Darin wird der name des Plugins angegeben, der path (Pfad zum "src" Ordner deines Plugin-Projekts), optional noch libs (Pfad zum Ordner der die nötigen Libs enthält - bei Bedarf mit Semikolon getrennt) und optional auch eine loadorder. Name und Wert ist durch einen Doppelpunkt getrennt. Falls dein Plugin Assets verwendet, kannst du darin auch assets angeben mit dem Pfad zum Asset-Ordner (auch hier optional mit Semikolon getrennt, falls es mehrer Asset-Ordner gibt).


    Der Inhalt der .txt Datei kann dann zB so aussehen:

    Code
    name: TestPlugin
    path: C:\Users\Name\Projects\Rising World\TestPlugin\src
    libs: C:\Users\Name\Projects\Rising World\ToolsAPI
    loadorder: -100


    Nein, bislang alles Super mit der Loader Reienfolge :thumbup:

    Das freut mich zu hören, dass das soweit klappt! :thumbup:

  • Wenn das nochmal auftritt oder du einen Weg findest, das zu reproduzieren, lass es mich bitte wissen

    :saint:ich kann das Reproduzieren:Dich muss nur mein TMP Inhalt wieder ins Pluginverzeichnis Verschieben:lol:
    Wenn du das auch mal Probieren möchtest kann ich dir hier den Kompletten Plugin Ordner anbieten8)(PW: risingworld)


    die Variante mit dem dynamischen Kompilieren

    Ich habe das mal Kurz getestet, am Grenzstein Projekt, das hat soweit erstmal ganz gut Geklappt.

    Auch eine schöne sache, das du einen Compiler integriert hast:wow:

    Nur ist mir aufgefallen, das dann alle Daten in den Plugin Ordner "GrenzStein" Kopiert werden:thinking:allerdings habe ich unter NetBeans den Packaging - Exclude From JAR "**/*.java,**/*.form,**/.*.*,**/*.blend,**/*.blend1,**/*.mtl,**/*.svg,**/*.xcf" benutzt:saint:das wird nicht Berücksichtigt und ich habe auch einieges in Unterordnern die werden dann auch Komplet Kopiert.
    Ich müsste da erstnoch mehr Testen:thumbup:

    Code: projectinfo.txt
    name: GrenzStein
    path: ...\Projekte\RW Unity\Plugin\GrenzStein\src
    libs: ...\SteamLibrary\steamapps\common\RisingWorldDedicatedServer\Plugins\ToolsAPI
    assets: ...\SteamLibrary\steamapps\common\RisingWorldDedicatedServer\Plugins\GrenzStein\Assets

    bei libs gehe ich auf das Plugin, oder besser aus dem ...\RW Unity\Plugin\GrenzStein\dist\lib Ordner?
    bei assets habe ich den Ordner in Plugin angegeben, oder hier aus dem ProjecktRW Unity\Plugin\GrenzStein\src\resources\assets? Ber das ist ja eigendlich schon im path mit drinn:thinking:

  • :saint: ich kann das Reproduzieren :D ich muss nur mein TMP Inhalt wieder ins Pluginverzeichnis Verschieben :lol:
    Wenn du das auch mal Probieren möchtest kann ich dir hier den Kompletten Plugin Ordner anbieten 8) (PW: risingworld)

    Vielen Dank für den Upload! :):thumbup: Ich kann das Problem nun ebenfalls bei mir reproduzieren. Offenbar tritt des dann auf, wenn sich nicht nur Plugins im Plugin-Ordner befinden (wie in dem Fall die .rar Dateien). Wir werden das mit dem nächsten Update beheben ;)


    Wenn du möchtest kannst du sonst auch diese Runtime.jar ausprobieren. Kopiere die einfach nach /Data/Java und ersetze die bestehende Datei dort.


    Ich habe das mal Kurz getestet, am Grenzstein Projekt, das hat soweit erstmal ganz gut Geklappt.

    Auch eine schöne sache, das du einen Compiler integriert hast :wow:

    Freut mich, dass es soweit funktioniert ^^


    Nur ist mir aufgefallen, das dann alle Daten in den Plugin Ordner "GrenzStein" Kopiert werden :thinking: allerdings habe ich unter NetBeans den Packaging - Exclude From JAR "**/*.java,**/*.form,**/.*.*,**/*.blend,**/*.blend1,**/*.mtl,**/*.svg,**/*.xcf" benutzt :saint: das wird nicht Berücksichtigt und ich habe auch einieges in Unterordnern die werden dann auch Komplet Kopiert.

    Ja, leider werden Projekteinstellungen der IDE nicht berücksichtigt... grundsätzlich wird die IDE gar nicht erst eingebunden, sondern die Java-Dateien unter src direkt kompiliert. Die Sache ist, dass beim Kompilieren "on-the-fly" generell gar keine .jar Datei generiert wird, sondern nur einzelne .class Dateien...


    bei libs gehe ich auf das Plugin, oder besser aus dem ...\RW Unity\Plugin\GrenzStein\dist\lib Ordner?

    Die Dateien bzw. der Ordner, der unter libs angegeben wurde, wird beim Kompilieren rüberkopiert. Du kannst da ganze Ordner oder auch einzelne Dateien (mit Semikolon getrennt) angeben.


    bei assets habe ich den Ordner in Plugin angegeben, oder hier aus dem ProjecktRW Unity\Plugin\GrenzStein\src\resources\assets? Ber das ist ja eigendlich schon im path mit drinn :thinking:

    Auch wenn das bereits bei path angegeben wurde, müsstest du das für Assets erneut angeben. Denn die Angabe path berücksichtigt nur Java-Dateien ;) Alles, was bei assets angeben wurde, wir nochmal separat rüberkopiert.

  • red51 wo du an anderer Stelle am PostProzess bist, der Text3D macht noch kleinere Probleme:


    Unterwasser wird "AlwaysVisible" noch mit Ausgeblendet, sonst ein sehr schöner Efeckt.
    Überwasser sieht es wieder wie gewollt aus.

    Es scheint auch auf nicht Sichtbares, und Glas im algemeinen einen Efeckt auf die Schrift zu haben.

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!