Minecraft Plugins verbinden?
Ich lerne mit momentan wie man Plugins in Minecraft macht (Spigot/Maven) ich suchte dafür Möglichkeiten wie Plugins miteinander interagieren können und kam auf custom events, scheinbar muss mein zukünftiges Core Plugin dafür eine dependency haben wofür es ein repository benötigt, dafür muss ich soweit ich es verstanden habe zum Beispiel einige bestimmte Dateien auf meinen webspace hochladen.
Jetzt zu meinen Fragen, 1. habe ich das richtig verstanden? 2. welche Dateien muss ich wie hochladen? 3. gibt es eventuell noch andere gute Möglichkeiten wie zwei Plugins gut miteinander kommunizieren können?
Was genau heißt denn "Kommunizieren"? Was genau sollen die Plugins jeweils dabei tun?
Z.B. das ich variablen übergeben kann oder Funktionen geteilt werden
2 Antworten
Am einfachsten ist es ein "Core" Plugin zu haben welches im Prinzip eine API ist. Das kannst du einfach als Jar in ein anderes Projekt einbinden und die Funktionen nutzen.
Ist manchmal ein bisschen fummelig. Google einfach wie du mit maven eine lokale .jar einbinden kannst
Ich nehme Mal an, dass du mit kommunizieren das zugreifen auf eine API Schnittstelle meinst.
Es gibt mehrere Möglichkeiten ein anderes Plugin in der pom.xml als Dependency festzulegen. Einmal ein remote Repository, welches aufgerufen wird indem auf ein Server eine Webanfrage gestellt wird wodurch dann die Plugin hat herunterlgeladen wird. Dafür muss man nicht zwangsweise einen eigenen Server haben, sondern kann auch Dienste wie repsy nutzen.
Man kann Projekte aber auch Lokal importieren, also dass die jar Datei auf dem gleichen PC ist wie das Projekt, dazu braucht man dann kein Server.
2. Hochladen musst du immer dein Plugin, also deine jar Datei.
Du musst aber immer eine API in dein Plugin rein programmieren, was keine Aufgabe für Java Anfänger ist. Allgemein gibt es dazu genug Tutorials im Spigot/Bukkit Forum.
(Das hier ist ganz nett: https://bukkit.org/threads/making-an-api-then-referencing-it-in-another-plugin.138080/)
Ich habe das Plugin hochgeladen aber es kommt immer eine Fehlermeldung das es nicht gefunden werden konnte
Meinst du wenn du es als Dependecy in einem anderen Projekt integrieren möchtest?
Genau das habe ich versucht aber nicht hin bekommen