API
Commandes et permissions
Des commandes avec des arguments typés, des sous-commandes, des alias, des suggestions et des permissions. Quand quelqu’un en utilise une mal, il voit l’utilisation correcte sans que tu aies à écrire ce message.
En CraftScript
Un fichier par commande, dans commands/, avec le même nom que la commande :
command pay(to: player, amount: int) requires "eco.pay" alias "send" describe "Envoie des pièces" {
if player == null { return "Réservé aux joueurs" }
if amount <= 0 { return "&cLe montant doit être positif" }
return "{amount} pièces envoyées à {to.name}"
}command announce(message: text) requires "eco.admin" describe "Fait une annonce à tout le monde" {
broadcast("&6[Annonce] {message}")
}Si un argument manque ou n’est pas du type attendu, le joueur voit par exemple Missing <amount>. Usage: /pay <to> <amount> ou 'abc' is not a whole number.
| Type | Accepte |
|---|---|
player |
Un joueur en ligne, avec des suggestions |
int, number |
Entier, nombre |
bool |
true/false, yes/no, on/off |
string |
Un mot, ou plusieurs entre guillemets |
text |
Le reste de la ligne |
id |
Un id du jeu (minecraft:stone) |
Ajoute ? pour rendre un argument facultatif (target: player?).
En Kotlin
package com.example.homes.commands
object HomeCommand {
private val homes = mutableMapOf<UUID, Location>()
fun register() {
Crafting.commands.command("home") {
description = "Te téléporte chez toi"
alias("h")
executes { c -> c.player.teleport(homes[c.player.uuid] ?: c.fail("&cAucun domicile défini")) }
sub("set") {
executes { c -> homes[c.player.uuid] = c.player.location; c.reply("&aDomicile défini") }
}
sub("of") {
permission = "homes.others"
player("target")
executes { c -> c.player.teleport(homes[c.player("target").uuid] ?: c.fail("&cAucun domicile")) }
}
}
}
}Arguments : string, greedy, int, double, bool, player, identifier, chacun avec optional. Dans executes : c.player (celui qui l’exécute), c.player("target"), c.int("n"), c.getOrNull<Int>("n"), c.reply(…) et c.fail(…), qui s’arrête avec un message d’erreur.
Permissions
Crafting inclut des permissions par groupes, dans config/crafting/permissions.json. Les opérateurs du serveur les ont toutes.
{
"groups": {
"default": ["homes.use", "eco.pay"],
"mod": ["homes.*", "chatguard.*", "-homes.others"],
"admin": ["*"]
},
"players": {
"Steve": { "groups": ["mod"], "permissions": ["homes.others"] }
}
}*accorde tout ;homes.*, tout ce qui commence parhomes..-permissionla refuse. La règle la plus précise l’emporte ; en cas d’égalité, c’est le refus qui l’emporte.- Tous les joueurs sont dans le groupe
default. - Préfixe tes permissions avec l’id de ton mod (
rubies.give) pour qu’elles n’entrent pas en conflit avec celles des autres mods.
Commandes de Crafting
Elles fonctionnent depuis le jeu et depuis la console du serveur.
| Commande | Ce qu’elle fait |
|---|---|
/crafting (ou /cf) |
Version et aide. |
/crafting mods |
Les mods chargés et leur état. |
/crafting reload <id> |
Recharge un script ou un plugin. Nécessite crafting.admin. |
/crafting profile |
La première fois, elle commence à mesurer ; la deuxième, elle affiche le temps de chaque mod. |
/crafting info |
Temps de démarrage, écouteurs, tâches, mémoire et contenu. |