API
Polecenia i uprawnienia
Polecenia z typowanymi argumentami, podpoleceniami, aliasami, podpowiedziami i uprawnieniami. Gdy ktoś użyje polecenia źle, zobaczy poprawne użycie, a ty nie musisz pisać tego komunikatu.
W CraftScript
Jeden plik na polecenie, w commands/, o tej samej nazwie co polecenie:
command pay(to: player, amount: int) requires "eco.pay" alias "send" describe "Wysyła monety" {
if player == null { return "Tylko dla graczy" }
if amount <= 0 { return "&cKwota musi być dodatnia" }
return "Wysłano {amount} monet do {to.name}"
}command announce(message: text) requires "eco.admin" describe "Ogłoszenie dla wszystkich" {
broadcast("&6[Ogłoszenie] {message}")
}Jeśli brakuje argumentu lub nie ma on oczekiwanego typu, gracz widzi na przykład Missing <amount>. Usage: /pay <to> <amount> albo 'abc' is not a whole number.
| Typ | Przyjmuje |
|---|---|
player |
Gracza online, z podpowiedziami |
int, number |
Liczbę całkowitą, liczbę |
bool |
true/false, yes/no, on/off |
string |
Jedno słowo albo kilka w cudzysłowie |
text |
Resztę wiersza |
id |
Id z gry (minecraft:stone) |
Dodaj ?, żeby argument był opcjonalny (target: player?).
W Kotlinie
package com.example.homes.commands
object HomeCommand {
private val homes = mutableMapOf<UUID, Location>()
fun register() {
Crafting.commands.command("home") {
description = "Teleportuje do domu"
alias("h")
executes { c -> c.player.teleport(homes[c.player.uuid] ?: c.fail("&cNie ustawiono domu")) }
sub("set") {
executes { c -> homes[c.player.uuid] = c.player.location; c.reply("&aDom ustawiony") }
}
sub("of") {
permission = "homes.others"
player("target")
executes { c -> c.player.teleport(homes[c.player("target").uuid] ?: c.fail("&cBrak domu")) }
}
}
}
}Argumenty: string, greedy, int, double, bool, player, identifier, każdy z optional. Wewnątrz executes: c.player (kto je wykonuje), c.player("target"), c.int("n"), c.getOrNull<Int>("n"), c.reply(…) i c.fail(…), które przerywa z komunikatem błędu.
Uprawnienia
Crafting ma wbudowane uprawnienia oparte na grupach, w config/crafting/permissions.json. Operatorzy serwera mają wszystkie.
{
"groups": {
"default": ["homes.use", "eco.pay"],
"mod": ["homes.*", "chatguard.*", "-homes.others"],
"admin": ["*"]
},
"players": {
"Steve": { "groups": ["mod"], "permissions": ["homes.others"] }
}
}*daje wszystko;homes.*wszystko, co zaczyna się odhomes..-permissionodbiera uprawnienie. Wygrywa najbardziej szczegółowa reguła; przy remisie wygrywa odmowa.- Wszyscy gracze są w grupie
default. - Poprzedzaj swoje uprawnienia id swojego moda (
rubies.give), żeby nie kolidowały z uprawnieniami innych modów.
Polecenia Craftingu
Działają z gry i z konsoli serwera.
| Polecenie | Co robi |
|---|---|
/crafting (lub /cf) |
Wersja i pomoc. |
/crafting mods |
Wczytane mody i ich stan. |
/crafting reload <id> |
Przeładowuje skrypt lub wtyczkę. Wymaga crafting.admin. |
/crafting profile |
Za pierwszym razem zaczyna pomiar; za drugim pokazuje czas każdego moda. |
/crafting info |
Czas startu, nasłuchiwacze, zadania, pamięć i zawartość. |