Hallo red51 ,
ich habe auch Probleme mit dem einrichten einer SQLite-Datenbank.
Hallo red51 ,
ich habe auch Probleme mit dem einrichten einer SQLite-Datenbank.
Also hier in dieser Diskusion habe ich noch eine Plugins gesehen.
Manche haben aber schon darum gebeten, unter Plugins einen eigenen Ordner für Unity zu erstellen, damit nicht Java und Unity Plugins gemischt werden.
Da ist überall Java 20 eingestellt und ich hatte nichts geändert.
Worauf beziehst du dich damit genau?
sorry, dass war im Falschen Thema. Ich habe damit das Problem mit dem ClassLoader gemeint wegen getPluginByName
Da ja URL nicht mehr unterstützt wird. Aber mann kann URI zu URL machen.
Das Problem hatten wir auch mit einer älteren NetBeans Version gehabt (da haben sich generell einige Inkompatibilitäten mit Java 20 ergeben). Welche NetBeans Version verwendest du denn? Da hilft wahrscheinlich nur ein Update auf die neueste Version (NetBeans 17)
Ich nutze schon NetBeans 17
Deutsch / German:
Die alte Plugin-API hatte 3 Klassen, um benutzerdefinierte Elemente in der Welt zu erstellen: Die World3DModel-Klasse (um ein benutzerdefiniertes 3D-Modell zu erzeugen), die World3DText-Klasse (um einen 3D-Text zu erzeugen) und die WorldArea-Klasse (um einen Bereich zu visualisieren).
Wir haben diesen Teil nun für die neue API überarbeitet: Es gibt eine Basisklasse GameObject , die ein leeres (unsichtbares) Element in der Welt darstellt. Sie können ihm einen Collider hinzufügen oder auch andere Spielobjekte als Kind anhängen (ähnlich wie die Kind-Eltern-Behandlung für UI-Elemente funktioniert).
Es gibt eine abgeleitete Model-Klasse, die ein Netz und ein Materialobjekt akzeptiert - dies ist nützlich, wenn Sie grundlegende Elemente (z. B. primitive Elemente wie einen Würfel) oder prozedural generierte Netze erzeugen möchten.
Es gibt auch eine abgeleitete Prefab-Klasse: Es stellt ein komplexeres 3D-Modell dar. Sie können ein Prefab in Unity erstellen und es dann in die API laden. Das Gute daran ist, dass ein Prefab eine beliebige Anzahl von Meshes / Submeshes, benutzerdefinierten Materialien und Shadern sowie benutzerdefinierten Unity-Komponenten enthalten kann. Auf diese Weise können Sie sogar Partikeleffekte, Animationen, physische Objekte usw. direkt in Unity erstellen, in ein AssetBundle exportieren und über die Plugin-API laden.
Wenn Sie ein Modell haben, das aus mehreren Texturen und Submeshes besteht, können Sie es jetzt ganz einfach in Unity importieren, in ein AssetBundle exportieren und als Prefab über die API laden - Sie müssen sich also nicht mehr mit "nur 1 Mesh und 1 texture"-Beschränkung der alten Java-API.
Die Prefab-Klasse ermöglicht Ihnen auch den Zugriff auf jedes Unterelement und jede Komponente, sodass Sie jederzeit einen Material- oder Animatorparameter oder einen visuellen Effekt ändern können.
Natürlich gibt es auch eine Text3D-Klasse, die ebenfalls von GameObject abgeleitet ist und einfach einen 3D-Text darstellt (ähnlich wie es in der Java-Version funktioniert hat).
Java Development Kit (JDK)
Ab 0.6.5 verwendet die neue Plugin-API derzeit JDK 20. Es wird mit dem Spiel ausgeliefert, daher ist es empfehlenswert, es aus dem Spielverzeichnis zu verwenden: Sie finden es im Spielordner unter
_New Version/Data/Java/JDK
Alternativ können Sie es hier herunterladen: https://jdk.java.net/20/
Integrated Development Environment (IDE)
Obwohl es möglich ist, Plugins mit einem Texteditor zu erstellen, ist es sehr empfehlenswert, eine IDE (integrierte Entwicklungsumgebung) zu verwenden. Es bietet Codevervollständigung, kann Dokumentationen anzeigen und ermöglicht Ihnen auch, die Plugins einfach zu kompilieren.
Dies ist ein Überblick über einige beliebte IDEs:
Einstig
Das Spiel wird bereits mit der API-Bibliothek (jar) und dem dazugehörigen Javadoc ausgeliefert - beides ist im Spieleverzeichnis unter _New Version/Data/SDK zu finden.
Wenn Sie die API aus dem Spielverzeichnis verwenden, verwendet Ihre IDE immer automatisch die neueste API (bei jeder Aktualisierung des Spiels).
Dieser Link enthält eine Online-Version des neuesten Javadoc: https://javadoc.rising-world.net
Original: Getting started von red51
German Version:
Und das ganze einmal auf Deutsch:
paulevs hat eine Vorlage für neue API-Plugins erstellt, mit der man schnell ein Projekt einrichten und mit der Erstellung der Plugins beginnen kann: https://github.com/paulevsGitch/RisingWorldPluginTemplate
Wie man es benutzt:
Aufbau-Plugin:
Wenn Sie eine IDE mit Gradle-Integration verwenden, können Sie einfach die Build-Aufgabe starten. Wenn Ihre IDE solche Funktionen nicht hat, öffnen Sie ein Terminal- oder cmd-Dienstprogramm und verwenden Sie den Befehl /gradlew build.
Ihr Plugin erscheint im Ordner /build/libs mit demselben Namen wie in settings.gradle angegeben.
Hallo red51 ,
mein NetBeans zeigt mir auf einemal foglede Warnung:
"Hauptversion 64 ist neuer als 63, die höchste Hauptversion, die von diesem Compiler unterstützt wird. Es wird empfohlen, das Sie den Compiler upgraden."
Was muss man da tun?
Gut zu wissen. Danke.
I have a own Windows Server with Rising World.
Hallo Leute,
momentan kann der ConfigManager in kein Plugin eingebunden werden, da anscheinent ein Bug in der API ist.
Der Fehler kommt auf jeden Fall nicht vom ConfigManager!
Hallo red51 ,
leider funktioniert getPluginByName nicht.
Log ist dabei
Hallo alle zusammen,
ein weiteres Plugin, das auch bereits in Java vorhanden war, ist nun auch in der Unity-Version.
Das Plugin ProtectedSlots gibt Admins die Chance, einen Slot zu "reservieren".
So verhindern sie, kann alle Slots von Spielern besetzt werden und der Admin nicht mehr auf den Server kommt.
In der Config kann man einstellen, wie viele Slots "reserviert" werden sollen.
Wichtig: Das Plugin benötigt den aktuellen ConfigManager (Unity), um zu funktionieren.
Download: HERE
Bei Fragen: Ihr wisst ja wie und wo.
Viel Spaß damit!
Hallo red51 ,
ich versuche in meine Plugins auch eigene Events zu schreiben.
Ich mach immer public class TestEvent extends Event.
Das hat früher auch so funktioniert. Nun fragt er mich nach einem "Pointer" .
Was ist dieser Pointer und was muss ich da angeben?
Oder muss ich das jetzt anders machen?
Hallo red51 ,
ich habe einen Fehler in der Javadoc gefunden.
Bei PlayerExitVehicleEvent steht "Called when a player enters a vehicle."
An alle: Wen ihr weitere Fehler findet, könnt ihr sie hier gerne melden.
To everyone: If you find any other bugs, please feel free to report them here.
Hallo Leute,
wie bereits angekündigt, habe ich den ConfigManager aus der Java-Version in die Unity Version übernommen.
Kurze Erklährung:
Mit dem ConfigManager kann man ganz leicht Configs erstellen.
Er funktioniert einwandfrei.
JAVADOC: HERE
Download: Hier im Forum! (Siehe Unten - Anhang)
Wichtige Info zur Installation:
Da der ConfigManager immer von anderen Plugins benötigt wird, muss dieser immer als erstes geladen werden! Rising World lädt die Plugins in der Reihenfolge, wie die Ordner im "Plugins"-Ordner sind. Das Betriebssystem sortiert die Ordner standardmäßig in Alphabetischer Reihenfolge. Es wird empfohlen, Zahlen, hinter die Plugin-Namen zu schreiben, um die Reihenfolge selber zu bestimmen! Beispiel mit ToolsAPI, ConfigManager und AktiveSign:
Viel Spaß damit!
Hallo Leute,
leider müsst ihr noch etwas Geduld mitbringen für AktiveSign und Co., da in die API noch keine "Schilder-API" hinzugefügt worden ist.