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

  • Oder Events fürs Betreten/Verlassen von Areas?

    Ja, genau die Events müssen dabei sein:saint:


    mal eien kleine Liste zum Anfang;(ich muss mich zusammen Reißen:silenced:

    • PlayerEnterAreaEvent
    • PlayerLeaveAreaEvent
    • AddAdminEvent
    • PlayerChatEvent
    • PlayerChangeGamemodeEvent
    • PlayerPermissionGroupChangeEvent

    beim Player

    • getPermissionGroup
    • setPermissionGroup
    • getPermissionValue
    • getPermissionValue
    • isAdmin
    • setAdmin
    • getCurrentAreas
    • getLanguage
    • registerKeys + unregisterKeys, unregisterKeys, getRegisteredKeys, setListenForKeyInput, disableClientsideKeys,enableClientsideKeys:saint:
    • setMouseCursorVisible


    :lol:das sollte reichen bei dem rest lasse ich mich gerne überrachen, wenn schon eigene Item's dabei wehren :saint:

  • Diese Events und Funktionen werden alle im ersten Release drin sein und müssten eigentlich auch funktionieren ^^

    Wir haben viele Events etc. aber noch nicht unter Realbedingungen testen können (und es ist nicht auszuschließen, dass im Laufe der Zeit auch wieder irgendwas kaputt gegangen ist), wenn also nach dem API Release irgendwas nicht funktioniert, sag einfach Bescheid :D

  • noci

    Changed the title of the thread from “Plugin API - Wehre schön, wenn - It would be nice, if” to “Plugin API - Wehre schön, wenn & Fehlerberichte - It would be nice, if & bug reports”.
  • Oke, ich habe mich etwas eingefunden:dizzy:

    Ich habe schon TextureAsset.loadFromPlugin gefunden, aber wie bekomme ich das in ein UIElement
    Geht das nur über .addStyleSheet(StyleSheetAsset.loadFromAssetBundle(bundle, path));

    Ich glaube da muss ich wol doch auf ein Turorial warten ^^

  • Ich habe schon TextureAsset.loadFromPlugin gefunden, aber wie bekomme ich das in ein UIElement
    Geht das nur über .addStyleSheet(StyleSheetAsset.loadFromAssetBundle(bundle, path));

    Nee, die StyleSheets sind nur relevant wenn du USS Dateien in Unity erstellen möchtest und dann in die API laden willst ^^ Die kannst du ansonsten ignorieren, das ist ein rein optionales Ding.


    Um einfach nur eine Textur auf einem UIElement anzuzeigen, musst du das auf style.backgroundImage setzen, also zB so:


    Java
    //Load an image from a plugin resource
    TextureAsset image = TextureAsset.loadFromPlugin(this, ...);
    //Create new UI element and assign the image
    UIElement panel = new UIElement();
    panel.style.backgroundImage.set(image);
    //Add element to player screen
    player.addUIElement(panel);


    Generell werden in der neuen UI viele Dinge über das style eingestellt. Es gibt zwar ein paar Hilfsfunktionen (setPosition(), setSize(), setPivot() etc), aber unter der Haube rufen die auch nur style auf.


    Grundsätzlich ist das Style an Unitys IStyle Interface orientiert: https://docs.unity3d.com/Scrip…ce/UIElements.IStyle.html

  • Ich habe noch ein Fehler beim Laden der javadoc, ich benutze NetBeans 15 aber daran sollte es doch eigendlich nicht liegen

    Ich fürchte das liegt tatsächlich an NetBeans 15 :/ Wir haben die 15 zwar nicht direkt getestet, aber unter NetBeans 12 tritt genau derselbe Fehler beim Einbinden des Javadoc auf (generell hatte NetBeans 12 Kompatibilitätsprobleme mit Java 20)... mit NetBeans 17 kann ich das Javadoc hingegen korrekt einbinden :thinking:

  • musst du das auf style.backgroundImage setzen

    Das ahbe ich mal gemacht:


    Laut Log wird das Bild Richtig Geladen

    REGISTER ASSET TEXTURE (2) FROM FILE: /resources/assets/style/papyrus/papyrus.00.png (EXT: png, CH: 85a372b10c83c9e1dbadffa959788073)

    [Java] Load from resources: 4565c413f43d19773e08937facc3d570_85a372b10c83c9e1dbadffa959788073 85a372b10c83c9e1dbadffa959788073


    Auch die Kontrolle Liefert mir Werte zurück [Java] Spawn Image Info: Texture png File

    Nur weil ich kein bild angezeigt bekommen habe, hatte ich mal die Borders hinzugefüt und dabei ist mir aufgefallen

    Das da keine Bild infos sind, ich habe dann mal eine Größe definiert

    Aber das Element bleibt Leer


    Und bild.style.borderTopColor.set(col.getRGB()); will auch nicht klappen:thinking:


    :lol:was habe ich noch Übersehen?

  • Das ahbe ich mal gemacht:

    Das sieht eigentlich korrekt aus :thinking: Ich habe es bei mir mal mit deinem Code getestet (allerdings direkt ein Bild von der Festplatte verwendet) und es funktioniert soweit eigentlich... es könnte sonst höchstens am Laden aus der Jar liegen, möglicherweise funktioniert das sonst nicht richtig :wat:


    Probiere evtl. mal ein Bild von der Festplatte zu laden. Oder testweise von einer URL, zB TextureAsset ta = TextureAsset.loadFromURL("https://images.rising-world.net/media/update/api/plugin_api3.jpg");


    Funktioniert es dann?


    Und bild.style.borderTopColor.set(col.getRGB()); will auch nicht klappen :thinking:

    Es scheint in deinem Code, als wenn du das java.awt Color Object verwenden würdest ? Die "getRGB()" Funktion gibt leider keinen Alphawert zurück, daher wird die Border in deinem Fall wohl einfach unsichtbar sein ^^


    Verwende am besten das neue ColorRGBA Objekt (das kann auch direkt dem Styleproperty übergeben werden, ohne, dass du es zu einem int umwandeln musst) ;)

  • Asset ta = TextureAsset.loadFromURL("https://images.rising-world.net/media/update/api/plugin_api3.jpg");

    Das klappt soweit

    Verwende am besten das neue ColorRGBA

    :thumbup:Dan klappts auch, mit dem ...

    möglicherweise funktioniert das sonst nicht richtig

    Ich kann mal mein Eigenen Res Loader Probieren


  • Das klappt soweit

    [...]

    Soweit Klappt es jetzt

    Danke für den Hinweis! Da wird irgendwas mit dem Laden aus den Resourcen wohl nicht klappen (bzw. genau genommen werden die Daten in dem Fall wohl nicht korrekt beim Client ankommen oder der Client geht nicht korrekt mit dieser Datenquelle um) :thinking: Ich werde mir das nochmal genauer anschauen ;)

  • Wehre es möglich eine JSON.jar mit in den RisingWorldDedicatedServer\Data\Java\Libs Ordner zu Packen?
    Allerdings bin ich selber etwas überfordert, welche die richtige ist, zumindestens habe ich keine Version gefunden die unter NetBeans JDK 20 funktioniert

    Ich finde das JSON-File-Format schöner als das fon snakeyaml^^

    ###
    Also json-simple-1.1.1.jar fäuft jetzt, aber ich hatte mir das anders vorgestellt, mit Writer, Reader und Pharser:dizzy:

  • Wehre es möglich eine JSON.jar mit in den RisingWorldDedicatedServer\Data\Java\Libs Ordner zu Packen?

    Hmm... also wir könnten theoretisch das hier mit dazu packen: https://github.com/stleary/JSON-java

    Bisher ist da nur die YAML Lib da die API bisher nur YAML verwendet ^^


    ich hätte gerne noch in der UI eine ListBox, ComboBox / DropBox, SpinnBox und Slider.

    Ich packe das mal auf unsere Liste :) Grundsätzlich möchten wir auf jeden Fall so viele UI Elemente wie möglich in der API bereitstellen^^

  • Ich versuche gerade Text schön zu gestallten ^^
    Irgendwie bekomme ich den Automatischen Zeilenumbruch nicht hin

    Bin ich hier Richtig bei flexWarp

    Kann vieleicht noch für den Clickable Event eine Maske einfügen, damit bei Runden oder Transparenten Bildern auch nur im Richtiegen Bereich der Event ausgelöst wird. Mit OverflowClipBox.ContentBox kann ich auch nichts Steuern, selbst innerhalb vom Ramen bringt nix
    Oder ich bin da auf dem Holzweg^^

Participate now!

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