Added new Paragraph
-Einem Command Funktionalität hinzufügen
Dieser Commit ist enthalten in:
Ursprung
eb8e04a948
Commit
611765ec75
@ -1,8 +1,8 @@
|
|||||||
# Steamwar - Command Framework
|
# Steamwar - Command Framework
|
||||||
|
|
||||||
## Inhalt
|
## Inhalt
|
||||||
- [Erstellung eines neuen Commands](#1)
|
- [Erstellung eines neuen Commands](#erstellung-eines-neuen-commands)
|
||||||
- [Einem Command Funktionalität hinzufügen](#2)
|
- [Einem Command Funktionalität hinzufügen](#einem-command-funktionalität-hinzufügen)
|
||||||
|
|
||||||
<a name="1"></a>
|
<a name="1"></a>
|
||||||
|
|
||||||
@ -13,10 +13,10 @@ Diesem musst du nun zunächst den Namen des Commands und die Permision, also wer
|
|||||||
Danach kanst du noch belibig viele weitere Argumente angeben. Diese sind Aliasse für den Command.
|
Danach kanst du noch belibig viele weitere Argumente angeben. Diese sind Aliasse für den Command.
|
||||||
|
|
||||||
``` java
|
``` java
|
||||||
public class NewCommand extends SWCommand{
|
public class NewCommand extends SWCommand {
|
||||||
|
|
||||||
public NewCommand(){
|
public NewCommand() {
|
||||||
super("Name", "Permision", "Aliase"...)
|
super("Name", "Permision", "Aliase"...);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -24,4 +24,27 @@ public class NewCommand extends SWCommand{
|
|||||||
<a name="2"></a>
|
<a name="2"></a>
|
||||||
|
|
||||||
## Einem Command Funktionalität hinzufügen
|
## Einem Command Funktionalität hinzufügen
|
||||||
|
**Warnung: Um den folgenden Teil zu verstehen, ist es notwendig die Grundlagen der Funktionalen Programmierung zu verstehen**
|
||||||
|
<br>
|
||||||
|
Damit der Command Funktionalität hat musst du *Patterns* defienieren. Ein solches Pattern erstellst du, indem du eine Methode erstellst und dies mit `@Register` anotierst. Das erste Argument dieser Methode muss vom Typ `CommandSender` sein. Alle folgenden Argumente werden dan für das Pattern match verwendet. Das Patternmatching funktioniert so, dass wenn ein Command aufgerufen wird, das Framework verucht die Argumente des Commands auf die Argumente einer Registrirten Methode zu matchen. Geht dies, so wird die Methode aufgerufen. Sollte der Patternmatch fehlschlagen, wird die default Help-Message gesendet. Um besser zu verstehen, wie solch ein Patternmatch abläuft, wollen wir uns folgendes Beispiel angucken:
|
||||||
|
|
||||||
|
``` java
|
||||||
|
public class TestCommand extends SWCommand {
|
||||||
|
|
||||||
|
public TestCommand() {
|
||||||
|
super("test","dev");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Register
|
||||||
|
public void entry1(CommandSender sender, int argument) {
|
||||||
|
System.out.println(argument);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Register
|
||||||
|
public void entry2(CommandSender sender, boolean argument) {
|
||||||
|
System.out.println(argument);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
Betrachten wir nun folgende Eingabe eines Users `/test true` da *true* ein `boolean`-Wert ist wird das Framework `entry2` aufrufen, da diese Methode genau ein boolean-Argument akzeptiert. Betrachten wir nun einen weiteren Aufruf: `/test 12`. Bei diesem Aufruf wurde ein Argument vom Typ `int` angegeben. Also wir `entry1` aufgerufen.
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren