API

Referência do CraftScript

Todas as palavras-chave, operadores, funções e membros disponíveis.

Palavras-chave

Palavra-chave Uso
let / var / const Declaram variáveis (const não pode ser reatribuída).
fun Funções com nome e lambdas fun(x) { }.
class, extends, this, super Classes e herança.
enum Enumerações.
import, from, as Módulos.
if, else, while, for … in, break, continue, return Controle de fluxo.
and, or, not (ou &&, ||, !) Lógica.
true, false, null Literais.
mod, item, block, recipe Declarações de conteúdo.
ore, tree, patch, structure, biome, dimension, terrain, biome_map, carver Declarações de geração de mundo. Veja Geração de mundo e Geração por código.
on … priority Tratador de evento.
command … requires … alias … describe Comandos.
every, after + ticks/seconds/minutes Timers.

Comentários: // linha, # linha, /* bloco */. As instruções são separadas por quebras de linha (ou ;).

Operadores

Operador Significado
+ - * / % Aritmética. + concatena se um dos lados for string; também junta listas.
== != < <= > >= Comparação. Um id e uma string são iguais se representam o mesmo id.
= += -= *= /= Atribuição.
?? Valor padrão se o lado esquerdo for null.
?. Acesso seguro: retorna null em vez de falhar.
a..b Intervalo inclusivo de números.
x[i] Índice de lista (negativo conta a partir do fim), chave de mapa, caractere de string.

Valores falsos: null, false, 0, "", lista ou mapa vazio.

Funções embutidas

Função Descrição
print(...) Escreve no log do servidor.
log(...) Igual a print, com o nome do mod.
str(x) Converte para string.
num(x) Converte para número (ou null).
int(x) Parte inteira.
round, floor, ceil, abs, sqrt Matemática.
min(...), max(...) Mínimo/máximo de números.
sin, cos, atan2, pi() Trigonometria, em radianos.
len(x) Tamanho de uma string, lista ou mapa.
type(x) Nome do tipo.
is(x, Class) Verifica uma classe ou enum.
random(), random(n), random(a, b) Decimal 0–1, inteiro 0–n, inteiro a–b.
chance(p) true com probabilidade p (0–1).
pick(list) Elemento aleatório.
now() Milissegundos atuais.
id("ns:path") Cria um identificador.
item(id, count?, name?) Cria um ItemStack.
color(text) Converte & em códigos de cor.
broadcast(msg) Mensagem para todos os jogadores.
run(command) Executa um comando do jogo como o console. Saída de emergência: o formato do comando pertence ao jogo e pode mudar.
player(name) Jogador online ou null.
players() Lista de jogadores.
world(id?) Mundo (a Superfície por padrão).
mod_loaded(id) Outro mod está carregado?
config(name, values?, synced?) Declara ou lê um arquivo de ajustes do mod.
listen(channel, fun(data, player)) Recebe dados em um canal do mod.
send(player, channel, data) Envia dados do servidor para um jogador.
send_to_server(channel, data) Envia dados do cliente para o servidor.
server O servidor.
tick Tick atual.
game_version, namespace Versão do Minecraft e o namespace do mod.

Membros de string

length, upper(), lower(), trim(), contains(s), starts_with(s), ends_with(s), split(sep), replace(a, b), repeat(n), substring(from, to?), is_empty.

Membros de lista

size, is_empty, first, last, add(x)/push(x), remove(x), remove_at(i), contains(x), index_of(x), join(sep), reverse(), sort(), clear(), map(f), filter(f), each(f), any(f), all(f), sum().

Membros de mapa

keys(), values(), has(k), get(k, default?), remove(k), size; além do acesso direto com map.key ou map["key"].

Objetos do jogo

Os nomes usam snake_case (max_health) e são os mesmos membros que em Kotlin (maxHealth). Os enums são usados como strings (player.game_mode = "creative"). Detalhes de cada um em O mundo e os jogadores.

Tipo Propriedades Métodos
Player name, uuid, health, max_health, food_level, game_mode, inventory, held_item, is_op, is_sleeping, has_crafting_client, location, world, custom_name, is_alive, data send, action_bar, title, give, set_held_item, play_sound, teleport, heal, damage, has_permission, kick, set_rotation, add_tag, has_tag, set_cooldown, has_cooldown
World id, players, time, is_raining, data block_at, set_block (com estados opcionais), spawn, drop_item, explode, strike_lightning, spawn_particle, play_sound, light_at, container_at, set_sign_text, set_chunk_loaded, entities, living_near, shoot, summon
Block type, x, y, z, world, location, is_solid, data set_type, relative
Entity uuid, type, world, location, custom_name, is_alive, data, direction, vehicle teleport, remove, set_rotation, add_tag, has_tag
LivingEntity tudo de Entity, health, max_health damage, heal, set_ai, add_effect, remove_effect, has_effect, effects, add_modifier, remove_modifier, attribute, set_attribute, equipment, set_equipment
Inventory size get, set, add, count, clear
Location world, x, y, z, yaw, pitch, block_x, block_y, block_z add, distance_to
data (armazenamento) keys; data["key"] lê e escreve get, set, get_int, get_number, get_string, get_boolean, remove, clear
ItemStack item, count, name, lore, data, enchantments with_count
Server players, worlds, motd, tps, is_dedicated player, world, broadcast, stop, run_command

Objetos de geração de mundo

O que as funções de uma declaração de geração de mundo recebem enquanto os chunks são criados. Explicados na página Geração por código.

Objeto Propriedades Métodos
world (construção de estrutura) x, y, z, seed, min_y, max_y block, state, is_air, is_in, can_stay, set (with optional states), inside, surface, top, flow, structures, place_file
plan (plano de estrutura) chunk_x, chunk_z, seed, min_y height, biome, column, file_size
site (construção de estrutura) x, y, z, radius, min_y, max_y, data, seed
world (terreno) seed, min_y, height biome
world (biome_map) seed tagged
ctx (carver) seed, start_x, start_z, chunk_x, chunk_z, min_y, max_y carve
at (solo do bioma) x, y, z, depth_above, depth_below, surface_depth, steep noise

Tipos de argumento de comando

player, int, number, bool, string (uma palavra), text (o resto da linha), id. Adicione ? para torná-lo opcional.

Limites

  • 2.000.000 passos por invocação (evento, comando ou timer).
  • 200 chamadas aninhadas (recursão).
  • Intervalos de até 1.000.000 elementos.