• 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!

Setupmenü

xGamerTim

Minecrafter
Registriert
22 Januar 2016
Beiträge
8
Diamanten
0
Hallo ich habe momentan zwei Probleme in meinem Plugin an denen ich scheitere und nicht vorankomme.

1. Ich möchte seid einigen Tagen ein Plugin schreiben und benötige dazu noch ein ein Setupmenü in dem man erst z.b denn Spawn setzen muss und dann die Lobby und erst wenn beides abgeschlossen ist wird das Setup beendet. Ich bin leider dort auf keine idee gekommen wie ich sowas mache.


2. Ich möchte einbauen das wenn jemand einen befehl eingibt das dieser erst bestätigt wird mit /accept oder ähnlichem. Leider bin ich bis jetzt noch nicht darauf gekommen wie ich soetwas machen

Ich wäre sehr Dankbar für Vorschläge wie ich soetwas lösen könnte.


Mit Freundlichen Grüßen,

xGamerTim
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Zu 1. solltest du evtl. schreiben, wie du dir so ein Setup-Menü vorstellst. Generell sollte der dahinterliegende Code beim Festlegen einer der Werte prüfen, ob bereits beide Werte gesetzt sind und dann weitermachen.

Zu 2. Hier kannst du BaseComponent z.B. mittels ComponentBuilder verwenden, um eine Anklickaktion im Chat festzulegen, die dann einen Befehl ausführt.
 
F

Figz

Guest
Zu dem was BlackHole bereits geschrieben hat, könntest du noch in den Fortschritt speichern (z. B. in einer YAML-Datei)

setSpawn: True/False
setLobby: True/False

Wenn er dann beim ersten mal nur den Spawn gespeichert hat, kann er beim nächsten Serverstart direkt bei der Lobby weitermachen. (Oder er muss eben beides erneut setzen.)
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Wenn er dann beim ersten mal nur den Spawn gespeichert hat, kann er beim nächsten Serverstart direkt bei der Lobby weitermachen. (Oder er muss eben beides erneut setzen.)
Das ist extrem Fehleranfällig, besonders wenn irgendwann jemand von Hand die Config bearbeitet oder die Parameteranzahl wächst. Solange es keine Möglichkeit gibt, dass das Plugin auch funktioniert, wenn es nur zur Hälfte konfiguriert wurde, macht es auch keinen Sinn dass man es zur Hälfte konfigurieren kann.

Korrekt implementieren würde man das, indem man die eigentliche Funktion vom Start des Plugins trennt. Das heißt keine Listener registrieren und dies in eigene Klasse verpacken. Wenn der Server mit einer gültigen Config startet oder der Nutzer das Setup abschließt wird erst die entsprechende Routine ausgeführt. Eventuell macht es dann auch Sinn den Setup Code zu deaktivieren und die zugehörigen Listener entfernen, ansonsten muss beim betreten des Setups die Funktion wieder deaktiviert werden. Sollte allerdings alles kein Problem sein, wenn man die onDisable Methode korrekt implementiert, was natürlich 90% aller Plugins nicht tun...
 
F

Figz

Guest
Und wo genau habe ich erwähnt, dass das Plugin in vollem Umfang genutzt werden kann, wenn es nur zur Hälfte konfiguriert wurde?

Irgendwo muss der Fortschritt gespeichert werden und da ist es egal ob in YAML(habe ich erwähnt, weil es für Unerfahrene leichter zu implementieren ist), SQL oder extra verschlüsselt.

Wenn Leute in Dateien rumfummeln in denen Sie nichts zu suchen haben, ist es deren eigenes Pech, dass es dann nicht funktioniert.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Und wo genau habe ich erwähnt, dass das Plugin in vollem Umfang genutzt werden kann, wenn es nur zur Hälfte konfiguriert wurde?
Implizierst du hier:
Wenn er dann beim ersten mal nur den Spawn gespeichert hat, kann er beim nächsten Serverstart direkt bei der Lobby weitermachen.

Irgendwo muss der Fortschritt gespeichert werden und da ist es egal ob in YAML(habe ich erwähnt, weil es für Unerfahrene leichter zu implementieren ist), SQL oder extra verschlüsselt.
Der Fortschritt kann entweder implizit über die gesetzten Attribute gespeichert werden (indem diese nicht null sind) oder aber bis zum Abschluss zwischengespeichert werden, bevor er in die Config geschrieben wird und ggf. ein "setupComplete" flag gesetzt wird. Beides sorgt für deutlich weniger gültige und ungültige Konfigurationszustände, die man ggf. gesondert behandeln muss oder bei denen etwas unerwartetes passieren kann.

Wenn Leute in Dateien rumfummeln in denen Sie nichts zu suchen haben, ist es deren eigenes Pech, dass es dann nicht funktioniert.
Kann man so machen oder aber man baut seine Software halt so, man kein Softwareentwickler sein muss um die Config auch von Hand editieren zu können. Außerdem kann man hier auch mal schnell selbst ein Flag vergessen und sich unnötig Arbeit machen. Nur weil du das System gebaut hast, heißt das nicht, dass du es fehlerfrei bedienen kannst.

Ansonsten geht das hier aber langsam stark Richtung Offtopic. Ich kann aktuell nicht einschätzen, ob dem TE das ganze hier überhaupt noch hilft, von daher belass ich es jetzt erstmal bei diesen beiden Posts.
 
Oben