API
Comandos e permissões
Comandos com argumentos tipados, subcomandos, aliases, sugestões e permissões. Quando alguém usa um errado, vê o uso correto sem você precisar escrever essa mensagem.
Em CraftScript
Um arquivo por comando, em commands/, com o mesmo nome do comando:
command pay(to: player, amount: int) requires "eco.pay" alias "send" describe "Enviar moedas" {
if player == null { return "Apenas jogadores" }
if amount <= 0 { return "&cA quantia precisa ser positiva" }
return "{amount} moedas enviadas para {to.name}"
}command announce(message: text) requires "eco.admin" describe "Anunciar para todos" {
broadcast("&6[Aviso] {message}")
}Se faltar um argumento ou ele não for do tipo esperado, o jogador vê, por exemplo, Missing <amount>. Usage: /pay <to> <amount> ou 'abc' is not a whole number.
| Tipo | Aceita |
|---|---|
player |
Um jogador online, com sugestões |
int, number |
Inteiro, número |
bool |
true/false, yes/no, on/off |
string |
Uma palavra, ou várias entre aspas |
text |
O resto da linha |
id |
Um id do jogo (minecraft:stone) |
Adicione ? para tornar um argumento opcional (target: player?).
Em Kotlin
package com.example.homes.commands
object HomeCommand {
private val homes = mutableMapOf<UUID, Location>()
fun register() {
Crafting.commands.command("home") {
description = "Teleportar para casa"
alias("h")
executes { c -> c.player.teleport(homes[c.player.uuid] ?: c.fail("&cNenhuma casa definida")) }
sub("set") {
executes { c -> homes[c.player.uuid] = c.player.location; c.reply("&aCasa definida") }
}
sub("of") {
permission = "homes.others"
player("target")
executes { c -> c.player.teleport(homes[c.player("target").uuid] ?: c.fail("&cSem casa")) }
}
}
}
}Argumentos: string, greedy, int, double, bool, player, identifier, cada um com optional. Dentro de executes: c.player (quem o executa), c.player("target"), c.int("n"), c.getOrNull<Int>("n"), c.reply(…) e c.fail(…), que para com uma mensagem de erro.
Permissões
O Crafting vem com permissões por grupos, em config/crafting/permissions.json. Os operadores do servidor têm todas.
{
"groups": {
"default": ["homes.use", "eco.pay"],
"mod": ["homes.*", "chatguard.*", "-homes.others"],
"admin": ["*"]
},
"players": {
"Steve": { "groups": ["mod"], "permissions": ["homes.others"] }
}
}*concede tudo;homes.*, tudo o que começa comhomes..-permissãoa nega. A regra mais específica vence; em caso de empate, a negação vence.- Todos os jogadores estão no grupo
default. - Prefixe suas permissões com o id do seu mod (
rubies.give) para que não colidam com as de outros mods.
Comandos do Crafting
Funcionam no jogo e no console do servidor.
| Comando | O que faz |
|---|---|
/crafting (ou /cf) |
Versão e ajuda. |
/crafting mods |
Mods carregados e seu estado. |
/crafting reload <id> |
Recarrega um script ou um plugin. Requer crafting.admin. |
/crafting profile |
Na primeira vez, começa a medir; na segunda, mostra o tempo de cada mod. |
/crafting info |
Tempo de inicialização, listeners, tarefas, memória e conteúdo. |