API

Mga utos at pahintulot

Mga command na may typed na argument, subcommand, alias, suggestion at permission. Kapag may maling gumamit nito, makikita niya ang tamang paggamit nang hindi mo na kailangang isulat ang mensaheng iyon.

Sa CraftScript

Isang file bawat command, sa commands/, na kapareho ng pangalan ng command:

commands/pay.craftCraftScript
command pay(to: player, amount: int) requires "eco.pay" alias "send" describe "Magpadala ng coins" {
    if player == null { return "Para sa mga player lang" }
    if amount <= 0 { return "&cDapat positibo ang halaga" }
    return "Nagpadala ng {amount} coins kay {to.name}"
}
commands/announce.craftCraftScript
command announce(message: text) requires "eco.admin" describe "Mag-anunsyo sa lahat" {
    broadcast("&6[Paalala] {message}")
}

Kung may kulang na argument o hindi ito ang inaasahang type, makikita ng player, halimbawa, ang Missing <amount>. Usage: /pay <to> <amount> o 'abc' is not a whole number.

Uri Tinatanggap
player Isang online na player, may suggestion
int, number Integer, numero
bool true/false, yes/no, on/off
string Isang salita, o ilan na nasa loob ng quote
text Ang natitira sa linya
id Isang id ng laro (minecraft:stone)

Magdagdag ng ? para gawing opsyonal ang argument (target: player?).

Sa Kotlin

commands/HomeCommand.ktKotlin
package com.example.homes.commands

object HomeCommand {
    private val homes = mutableMapOf<UUID, Location>()

    fun register() {
        Crafting.commands.command("home") {
            description = "Mag-teleport pauwi"
            alias("h")
            executes { c -> c.player.teleport(homes[c.player.uuid] ?: c.fail("&cWala ka pang home")) }
            sub("set") {
                executes { c -> homes[c.player.uuid] = c.player.location; c.reply("&aNa-set na ang home") }
            }
            sub("of") {
                permission = "homes.others"
                player("target")
                executes { c -> c.player.teleport(homes[c.player("target").uuid] ?: c.fail("&cWalang home")) }
            }
        }
    }
}

Mga argument: string, greedy, int, double, bool, player, identifier, bawat isa may optional. Sa loob ng executes: c.player (ang nagpapatakbo nito), c.player("target"), c.int("n"), c.getOrNull<Int>("n"), c.reply(…) at c.fail(…), na humihinto nang may mensahe ng error.

Mga permission

May kasamang permission na nakabatay sa grupo ang Crafting, sa config/crafting/permissions.json. Nasa mga operator ng server ang lahat ng ito.

config/crafting/permissions.jsonJSON
{
  "groups": {
    "default": ["homes.use", "eco.pay"],
    "mod": ["homes.*", "chatguard.*", "-homes.others"],
    "admin": ["*"]
  },
  "players": {
    "Steve": { "groups": ["mod"], "permissions": ["homes.others"] }
  }
}
  • Ibinibigay ng * ang lahat; ng homes.*, ang lahat ng nagsisimula sa homes..
  • Tinatanggihan ito ng -permission. Ang pinakaspesipikong patakaran ang panalo; kapag tabla, ang pagtanggi ang panalo.
  • Nasa grupong default ang lahat ng player.
  • Lagyan ng id ng mod mo sa unahan ang mga permission mo (rubies.give) para hindi sila sumalungat sa mga permission ng ibang mod.

Mga utos ng Crafting

Gumagana ang mga ito mula sa laro at mula sa console ng server.

Utos Ano ang ginagawa nito
/crafting (o /cf) Bersyon at tulong.
/crafting mods Mga naka-load na mod at ang status nila.
/crafting reload <id> Nire-reload ang isang script o plugin. Kailangan ng crafting.admin.
/crafting profile Sa unang beses, nagsisimula itong magsukat; sa ikalawa, ipinapakita nito ang oras ng bawat mod.
/crafting info Oras ng pag-start, mga listener, task, memory at content.