SteamWar/SpigotCore
Archiviert
13
0

Weitere Verbesserungen CMD Framework: #147

Geschlossen
2021-12-24 14:56:31 +01:00 von YoyoNow geöffnet · 3 Kommentare
Besitzer

Idee von Chaos:

@Register("set")
public void genericCommand(Player player, @ToggleValue(on="fliegen", off="gleiten") boolean newState) {
}

Meine Verbesserung davon:

@Register
public void genericCommand(Player player, @SwitchValue({"... deine Werte, als Array mit mindestens 2 Werten"}) boolean|int parameter) {}

Wenn das SwitchValue array 2 Werte hat kann man sowohl dahinter boolean als auch int angeben, bei mehr als 2 muss der Parameter den type int haben. Der int gibt den index in das 'array' von der Annotation an. Wenn es nur 2 Werte sind und boolean der Paramter ist, wird der index in einen boolean wie folgt umgewandelt:

index != 0

Womit der 0te Index false und der 1te Index true als wert hat.

Idee von Chaos: ```java @Register("set") public void genericCommand(Player player, @ToggleValue(on="fliegen", off="gleiten") boolean newState) { } ``` Meine Verbesserung davon: ```java @Register public void genericCommand(Player player, @SwitchValue({"... deine Werte, als Array mit mindestens 2 Werten"}) boolean|int parameter) {} ``` Wenn das SwitchValue array 2 Werte hat kann man sowohl dahinter boolean als auch int angeben, bei mehr als 2 muss der Parameter den type int haben. Der int gibt den index in das 'array' von der Annotation an. Wenn es nur 2 Werte sind und boolean der Paramter ist, wird der index in einen boolean wie folgt umgewandelt: ``` index != 0 ``` Womit der 0te Index `false` und der 1te Index `true` als wert hat.
Autor
Besitzer

Dies könnte man sicherlich auch mit einem TypeMapper bauen, jedoch dürfte dies mehr Aufwand sein, als es so zu machen.

Dies könnte man sicherlich auch mit einem TypeMapper bauen, jedoch dürfte dies mehr Aufwand sein, als es so zu machen.
Autor
Besitzer

Man kann nur boolean und int als parameter type wählen, da wenn du ein String haben möchstest du dies mit dem @StaticValue construkt machen kannst. Wobei man diesen vllt auch erweitern kann, dass auch boolean und int erlaubt sind. Ich weiß nur nicht in wie weit das dann verwirrung hervorruft, weil es im Namen nicht explizit beschrieben werden kann, was passiert, wenn du das ganze als int oder boolean haben möchtest.

Man kann nur boolean und int als parameter type wählen, da wenn du ein String haben möchstest du dies mit dem `@StaticValue` construkt machen kannst. Wobei man diesen vllt auch erweitern kann, dass auch boolean und int erlaubt sind. Ich weiß nur nicht in wie weit das dann verwirrung hervorruft, weil es im Namen nicht explizit beschrieben werden kann, was passiert, wenn du das ganze als int oder boolean haben möchtest.
Autor
Besitzer

Also die Frage an euch. Was wäre euch lieber?

Also die Frage an euch. Was wäre euch lieber?
YoyoNow hat diesen Issue 2021-12-30 20:04:05 +01:00 geschlossen
Dieses Repo ist archiviert. Du kannst Issues nicht kommentieren.
Keine Beschreibung angegeben.