• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Eigenes PlotSystem programmieren

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
300
Minecraft
Blura_
Hallo,
ich möchte mir ein eigenes PlotSystem programmieren. Ich habe mir überlegt wie ich das machen könnte, doch ich weiß nicht wie ich eine Plotwelt erstellen lassen kann und wie ich die Plot speicher kann etc.
Ich hoffe einer von euch hat Ideen wie ich das machen könnte und kann mir dabei helfen.
Danke im Voraus
 

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
300
Minecraft
Blura_
Wenn es daran schon scheitert, fehlen dir wichtige Grundkenntnisse der Programmierung. Entsprechend wird dieses Vorhaben mit deinem aktuellen Kenntnisstand entweder scheitern oder es wird dabei etwas herauskommen, was vielleicht gerade so funktioniert, aber existierenden Lösungen weit unterlegen ist - was dieses Projekt natürlich zu einer sinnlosen und frustrierenden Angelegenheit macht.

Ich empfehle dir ohnehin, zunächst richtig, ohne Bukkit-API, programmieren zu lernen, um die Grundkenntnisse zu erwerben (mehr dazu in diesem und diesem Post von mir). Danach oder auch währenddessen kannst du Praxiserfahrung sammeln, indem du schrittweise komplexere Projekte angehst. Später bist du dann in der Lage, ein Grundstücks-Plugin und andere komplexere Plugins selbständig zu realisieren und dabei etwas brauchbares zu produzieren.
So ein Beitrag hilft mir nicht ganz weiter, denn meiner Meinung nach kann ich die Grundkenntnisse von Java/Bukkit gut genug kenne...
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Wenn du Java gut genug kennst, gibts eigentlich keine so weit gefassten Probleme. Konkrete Probleme hat jeder, das kommt häufig vor. Dann kann man verschiedene Herangehensweisen diskutieren und so zu einem brauchbaren Ergebnis kommen.

Aber was sollen wir hier jetzt vorschlagen? Ich kann dir natürlich aus den Javadocs von Spigot verlinken, wie man eine Welt erstellt, ich kann dir verlinken, wie man eine Welt mit einem eigenen Generator erstellt. Ich kann dir verlinken, wie man Konfigurationsdateien speichert und ausliest. Das sind alles Grundlagen der Bukkit API.

Oder möchtest du hier vielleicht wissen, ob du die Plots in einer Datenbank speichern sollst und wenn ja in welcher? Sowas können wir hier mit Vor- und Nachteilen belegen und diskutieren, aber es kommt nicht so rüber, als würdest du darauf hinauswollen.

Zuletzt noch die obligatorische Frage: Warum? Es gibt öffentliche Plot-Systeme wie PlotSquared, die du beliebig erweitern kannst. Geht es dir um den Lerneffekt? Willst du nur ein sehr minimales System bauen? Willst du sehr spezielle Funktionen?
 

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
300
Minecraft
Blura_
Wenn du Java gut genug kennst, gibts eigentlich keine so weit gefassten Probleme. Konkrete Probleme hat jeder, das kommt häufig vor. Dann kann man verschiedene Herangehensweisen diskutieren und so zu einem brauchbaren Ergebnis kommen.

Aber was sollen wir hier jetzt vorschlagen? Ich kann dir natürlich aus den Javadocs von Spigot verlinken, wie man eine Welt erstellt, ich kann dir verlinken, wie man eine Welt mit einem eigenen Generator erstellt. Ich kann dir verlinken, wie man Konfigurationsdateien speichert und ausliest. Das sind alles Grundlagen der Bukkit API.

Oder möchtest du hier vielleicht wissen, ob du die Plots in einer Datenbank speichern sollst und wenn ja in welcher? Sowas können wir hier mit Vor- und Nachteilen belegen und diskutieren, aber es kommt nicht so rüber, als würdest du darauf hinauswollen.

Zuletzt noch die obligatorische Frage: Warum? Es gibt öffentliche Plot-Systeme wie PlotSquared, die du beliebig erweitern kannst. Geht es dir um den Lerneffekt? Willst du nur ein sehr minimales System bauen? Willst du sehr spezielle Funktionen?
Ich weiß natürlich wie man eine Welt erstellt, doch das Problem ist. Ich meine auch nicht wo man einen Plot speichert (Da würde ic h aber lieber eine File nehmen, denn es wäre performanter). Doch nachdem ich die Welt erstellt habe muss ich ja irgendwie die Plots "getten" damit ich die Plots speichern kann. Genau da liegt das Problem, denn ich weiß nicht wie ich nach dem Erstellen einer Welt, alle Plots "getten" kann. Was mir aber eingefallen ist wäre das man vom Worldspawn regelmäßig die Plotgröße dann die Straßengröße entlang die Plots ungeclaimt speichert, doch da ist jetzt die Frage, ob der Server es aushält, denn das sind so viele Locations.
 

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
300
Minecraft
Blura_
Da bin ich anderer Meinung, denn für mich gehören zu den Grundkenntnissen auch Persistenz (also dauerhafte Speicherung von Daten, z.B. Grundstücksmetadaten), Softwaredesign (womit du eigentlich schon einige Gedanken zum Aufbau deines Systems haben solltest) und die Nutzung der Javadocs (besonders die von Bukkit).

Da die Fragen in deinem Anfangspost aber sehr allgemein sind, scheinen viele solcher Grundlagen zu fehlen. Es mag ja sein, dass du schon die Syntax, Kontrollstrukturen, vielleicht auch einige Aspekte der OOP kennst - aber an anderen Stellen hapert es dann eben wieder, und das wird nicht besser, wenn ich dir hier alles vorkaue, was deine Kenntnisse übersteigt.

Möglicherweise verstehe ich deine Fragen auch falsch. Falls du bereits selbst etwas versucht hast und jetzt an einer bestimmten Stelle nicht weiterkommst, ist es natürlich keine Schande, zu fragen. Dafür muss man es aber erstmal selbständig versucht haben.
Das ist ja auch nicht meine Frage wo ich die Grundstücke speichere und auch wie ist nicht die Frage...
 

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
Hmmm, jetzt dämmert langsam worauf du hinaus willst.
Ich hab noch nie ein Plot Plugin gebaut - kein Bedarf - aber....

Als erste Idee würde ich mich an die World Generation klammern.
Du kannst doch anhand der Chunks gewiss ausmachen ob das eine Straße oder ein Plot sein soll?
Sammel diese Chunk Locations und sobald du ausreichend Chunks aneinander hast für einen Plot - erstelle einen, speicher ihn und verwirf die nicht länger benötigten Chunk Locations aus deinem temporären Zwischenspeicher.

Verstehst du was ich meine?

Anstatt den World Generator direkt zu manipulieren würde ich allerdings lieber auf Chunk Load Events bauen.
Oder durch den World Generator custom Events feuern lassen und dann woanders behandeln um die Anzahl der Events einzugrenzen und um potentiell mit weniger anderen Plugins zu interferieren.

Mit etwas Bonusaufwand bist du auch nicht auf das Konzept "Chunks" limitiert... es geht dabei nur drum zu wissen wo deine Straßen sind, damit du die Plots drum herum finden und bemessen kannst richtig.
Bei einem normalen Plot World Generator, also unendlich und konstant gleiche Generation der Plots, kannst du sicherlich auch mathematisch rangehen und dir die Plot Positionen und deren Eckpunkte berechnen. Bestimmt auch n Eck zuverlässiger, aber fürs Erste kannst du ja einen einfachen Ansatz probieren.
Dann kommen vielleicht auch ein paar Ideen von dir dazu.

eine File nehmen, denn es wäre performanter
o_O
Bei der Menge an Plots wohl eher weniger. Je nachdem.
Du hast entweder viele super kleine Dateien oder eine immer größer werdende... letzteres wäre wohl "performanter" längerfristig, aber auch das geht irgendwann nach hinten los.
Wenns ohne externe Datenbank gehen soll, greif doch zu SQLite oder H2.
H2 kannst sogar konfigurieren, dass es 1:1 kompatibel zum MySQL Dialekt ist. Chillig!
Und die Datenbank Engine wird sich drum kümmern dass die flatfile DB effizient gelesen und beschrieben wird, sodass die konstant wachsende Datei weniger problematisch wird.
 

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
du die ungeclaimten Plots nicht zwingend speichern musst.
Ist nochmal ein Stück angenehmer dann, allerdings muss natürlich kontrolliert werden, dass keiner Bauen / Abbauen / etc. kann außerhalb von Claims & Straßen - sollte ja aber kein Stress sein. :)

Mit Locations brauchst du da nicht zu arbeiten, das wäre nicht sinnvoll. Vielmehr lässt sich ein (normales, rechteckiges) Grundstück als 2D-Koordinatenpaar darstellen. Schon hast du lediglich vier Ganzzahlen pro Plot,
Yes. :dia:

Was du wann in den Arbeitsspeicher lädst
Da kann man sich wieder ans Chunk Loading halten:
Chunk lädt -> berechnen ob sich hier ein Plot befinden sollte -> wenn ja, Plot Daten laden.
Chunk entlädt -> Wenn alle Chunks eines Plots entladen sind, Plot Daten ausm Cache entfernen.

Wäre äußerst sparsam, genau auf den aktuellen Bedarf der jeweiligen Plotwelt angepasst.
 

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
442
Diamanten
228
In meinen Augen ist die Chunkgenerierung das schwierigste.

Die Plots würde ich persönlich einfach von WorldGuard verwalten lassen, da WorldGuard gut mit sehr viel Regionen klar kommt, eine gute API besitzt, stetig weiter entwickelt wird und keine Performance Probleme beim Speichern hat.
Das Anlegen von den Regionen und Vergeben an Spieler sollte über die API relativ einfach möglich sein.
 
Oben