API
Befehle und Berechtigungen
Befehle mit typisierten Argumenten, Unterbefehlen, Aliasen, Vorschlägen und Berechtigungen. Benutzt jemand einen falsch, sieht er die richtige Verwendung, ohne dass du diese Meldung schreiben musst.
In CraftScript
Eine Datei pro Befehl, in commands/, mit demselben Namen wie der Befehl:
command pay(to: player, amount: int) requires "eco.pay" alias "send" describe "Münzen senden" {
if player == null { return "Nur für Spieler" }
if amount <= 0 { return "&cDer Betrag muss positiv sein" }
return "{amount} Münzen an {to.name} gesendet"
}command announce(message: text) requires "eco.admin" describe "An alle ankündigen" {
broadcast("&6[Hinweis] {message}")
}Fehlt ein Argument oder hat es nicht den erwarteten Typ, sieht der Spieler zum Beispiel Missing <amount>. Usage: /pay <to> <amount> oder 'abc' is not a whole number.
| Typ | Akzeptiert |
|---|---|
player |
Einen Spieler, der online ist, mit Vorschlägen |
int, number |
Ganzzahl, Zahl |
bool |
true/false, yes/no, on/off |
string |
Ein Wort oder mehrere in Anführungszeichen |
text |
Den Rest der Zeile |
id |
Eine Spiel-ID (minecraft:stone) |
Häng ? an, um ein Argument optional zu machen (target: player?).
In Kotlin
package com.example.homes.commands
object HomeCommand {
private val homes = mutableMapOf<UUID, Location>()
fun register() {
Crafting.commands.command("home") {
description = "Nach Hause teleportieren"
alias("h")
executes { c -> c.player.teleport(homes[c.player.uuid] ?: c.fail("&cKein Zuhause gesetzt")) }
sub("set") {
executes { c -> homes[c.player.uuid] = c.player.location; c.reply("&aZuhause gesetzt") }
}
sub("of") {
permission = "homes.others"
player("target")
executes { c -> c.player.teleport(homes[c.player("target").uuid] ?: c.fail("&cKein Zuhause")) }
}
}
}
}Argumente: string, greedy, int, double, bool, player, identifier, jeweils mit optional. Innerhalb von executes: c.player (wer ihn ausführt), c.player("target"), c.int("n"), c.getOrNull<Int>("n"), c.reply(…) und c.fail(…), das mit einer Fehlermeldung abbricht.
Berechtigungen
Crafting bringt gruppenbasierte Berechtigungen mit, in config/crafting/permissions.json. Serveroperatoren haben alle.
{
"groups": {
"default": ["homes.use", "eco.pay"],
"mod": ["homes.*", "chatguard.*", "-homes.others"],
"admin": ["*"]
},
"players": {
"Steve": { "groups": ["mod"], "permissions": ["homes.others"] }
}
}*erlaubt alles,homes.*alles, was mithomes.beginnt.-permissionverweigert sie. Die spezifischste Regel gewinnt, bei Gleichstand gewinnt die Verweigerung.- Alle Spieler sind in der Gruppe
default. - Stell deinen Berechtigungen die ID deiner Mod voran (
rubies.give), damit sie nicht mit denen anderer Mods kollidieren.
Crafting-Befehle
Sie funktionieren im Spiel und in der Serverkonsole.
| Befehl | Was er macht |
|---|---|
/crafting (oder /cf) |
Version und Hilfe. |
/crafting mods |
Geladene Mods und ihr Status. |
/crafting reload <id> |
Lädt ein Skript oder ein Plugin neu. Erfordert crafting.admin. |
/crafting profile |
Beim ersten Mal beginnt die Messung, beim zweiten Mal zeigt er die Zeit jeder Mod. |
/crafting info |
Startzeit, Listener, Aufgaben, Speicher und Inhalte. |