Minecraft Plugin geht nicht (IntelliJ)?

Lezurex  14.08.2021, 14:37

Was meinst du mit "alle 30 Plugins (+Test Plugins)? Welchen Ordner (mit was drin) hast du wohin verschoben? Das ist mir nicht ganz klar geworden aus deiner Erklärung.

Nerom 
Fragesteller
 14.08.2021, 14:49

also ich habe es in den Plugins Ordners meines Minecraft Servers verschoben (Das Projekt). Nur habe ich halt verschiedene Klassen in diesem Projekt erstellt und verschiedene Packag

1 Antwort

Minecraft Plugins werden als .jar-Archiv exportiert. Du kannst also nicht einfach deinen gesamten Projektordner in deinen plugins Ordner kopieren.

Der Spigot Plugin-Loader schaut im plugins Ordner nach diesen .jar-Dateien. Dort sucht er dann nach der plugin.yml. In der plugin.yml sind dann deine verschiedenen Informationen zu deinem Plugin vorhanden (Name, Version, alle Commands, etc...). Ausserdem musst du da den Eintrittspunkt für dein Plugin definieren, also die Main-Klasse.

Bei dir sehe ich, dass du die Main-Klasse falsch definiert hast. Da musst du nicht den Systempfad angeben, sondern den Namen (bzw. Pfad) des Paketes und dann den Namen der Klasse.

In deinem Fall wäre das dann nicht src/InformationPlugin/Main.java, sondern InformationPlugin.Main

Danach musst du dein Plugin als .jar-Archiv exportieren. Wie das in IntelliJ geht ist hier beschrieben:

File > Project Structure
Click on Artifacts
Click the green + to add a new artifact
Select Jar > Empty
Give it a name
Add your plugins "compile output"
Add your plugins plugin,yml, config.yml, and any other raw files you need in the jar
Click OK
Build > Build Artifacts
Choose the name of the artifact you just created
Click build
Go to the directory of your project and find the artifacts folder to see the jar.

https://www.spigotmc.org/threads/compiling-exporting-plugin-in-intellijidea.13350/

Die jar-Datei, die dann generiert wurde kannst du dann in deinen plugins Ordner kopieren und den Server starten.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Nerom 
Fragesteller
 14.08.2021, 16:24

ja aber es wird aus irgendeinem Grund trotzdem nicht als Plugin erkannt? Vielleicht wegen dem Code?

0
Lezurex  14.08.2021, 16:26
@Nerom

Öffne die exportierte jar-Datei mal mit WinRAR, 7zip oder etwas anderem. Darin sollte auch die plugin.yml enthalten sein.

Zeig mir auch mal deine Ordnerstruktur von deinem Projekt.

0
Nerom 
Fragesteller
 14.08.2021, 17:05
@Lezurex

ok habe es gerade bearbeitet und was meinst du mit falschen Systempfad ich habe dort gar kein Pfad in der Main Klasse angegeben oder was meinst du?

0
Lezurex  14.08.2021, 17:08
@Nerom

In deiner plugin.yml musstest du die Main-Klasse angeben. Dies hast du aber falsch gemacht. Wie ich schon gesagt habe, muss da InformationPlugin.Main hin, da du das Paket angeben musst, nicht einen Pfad, wie du ihn bei einem Betriebssystem nutzen würdest.

0
Nerom 
Fragesteller
 14.08.2021, 17:16
@Lezurex

also muss das "src" und "java" auch weg? Und eben habe ein Bild reingeschickt was meine Ordnerstruktur zeigt könntest du da mal reinsehen?

0
Lezurex  14.08.2021, 17:18
@Nerom

Ja, src ist der Root (also Anfang) vom Classpath. Die Endung.java ist auch nicht nötig, da du damit sowieso nur Klassen ansprichst.

0
Nerom 
Fragesteller
 14.08.2021, 17:19
@Lezurex

und wenn ich versuche meine Plugins zu exportieren kann ich nur tutorial:jar hinzufügen also nur das gesamte Projekt

0
Lezurex  14.08.2021, 17:19
@Nerom

Wie ich sehe, hast du mehrere Projekte in einem Projekt. Solltest du in Zukunft getrennt machen. Wenn du dein Plugin kompilierst, werden die anderen Klassen nämlich auch immer wieder mitkompiliert.

0
Nerom 
Fragesteller
 14.08.2021, 17:21
@Lezurex

bzw. wenn ich exporte steht da tutorial:jar mit dem Unterordner tutorial 'compile output' und sonst noch spigot library sonst kann ich gar kein Artifakt hinzufügen

0
Lezurex  14.08.2021, 17:24
@Nerom

Das passt ja so. Dann musst du es nur noch auswählen. Build > Build Artifacts

0
Nerom 
Fragesteller
 14.08.2021, 17:26
@Lezurex

ja aber ich will ja einzelne Packages/Klassen exportieren halt nur das eine Plugin und nicht das ganze Projekt

0
Lezurex  14.08.2021, 17:30
@Nerom

Es wird nunmal dein ganzer src-Ordner kompiliert und in die jar-Datei gepackt. Grundsätzlich erstellst du für jedes Projekt auch ein neues IntelliJ-Projekt, welches seinen eigenen Classpath hat.

Es ist auch möglich, nur spezifische Dinge in die jar zu kompilieren, dies wäre dann aber komplizierter, damit fange ich gar nicht erst an.

0
Nerom 
Fragesteller
 14.08.2021, 17:32
@Lezurex

Ahh so ich habe jetzt ein Tutorial kurz nochmal angeguckt und da kann man davor noch spezifische Datei auswählen jetzt ist zwar im Plugins Ordner nur die InformationPlugin.jar drin, jedoch wird das Plugin trotzdem nicht erkannt also wenn ich /plugins eingebe kommt da Plugins (0)

0
Lezurex  14.08.2021, 17:55
@Nerom

Am besten machst du ein neues sauberes IntelliJ Projekt und kopierst deine alten Klassen da rein.

0
Nerom 
Fragesteller
 14.08.2021, 18:11
@Lezurex

geht leider immer noch nicht

0