API

CraftScript-Referenz

Alle verfügbaren Schlüsselwörter, Operatoren, Funktionen und Member.

Schlüsselwörter

Schlüsselwort Verwendung
let / var / const Variablen deklarieren (const kann nicht neu zugewiesen werden).
fun Benannte Funktionen und Lambdas fun(x) { }.
class, extends, this, super Klassen und Vererbung.
enum Aufzählungen.
import, from, as Module.
if, else, while, for … in, break, continue, return Kontrollfluss.
and, or, not (oder &&, ||, !) Logik.
true, false, null Literale.
mod, item, block, recipe Deklaration von Inhalten.
ore, tree, patch, structure, biome, dimension, terrain, biome_map, carver Deklarationen der Weltgenerierung. Siehe Weltgenerierung und Generierung per Code.
on … priority Event-Handler.
command … requires … alias … describe Befehle.
every, after + ticks/seconds/minutes Timer.

Kommentare: // line, # line, /* block */. Anweisungen werden durch Zeilenumbrüche (oder ;) getrennt.

Operatoren

Operator Bedeutung
+ - * / % Arithmetik. + verkettet, wenn eine Seite ein String ist, und verbindet auch Listen.
== != < <= > >= Vergleich. Eine ID und ein String sind gleich, wenn sie dieselbe ID darstellen.
= += -= *= /= Zuweisung.
?? Standardwert, wenn die linke Seite null ist.
?. Sicherer Zugriff: gibt null zurück, statt fehlzuschlagen.
a..b Zahlenbereich, inklusive Ende.
x[i] Listenindex (negativ zählt vom Ende), Map-Schlüssel, Zeichen eines Strings.

Falsy-Werte: null, false, 0, "", leere Liste oder Map.

Eingebaute Funktionen

Funktion Beschreibung
print(...) Schreibt ins Server-Log.
log(...) Wie print, mit dem Namen der Mod.
str(x) Wandelt in einen String um.
num(x) Wandelt in eine Zahl um (oder null).
int(x) Ganzzahliger Teil.
round, floor, ceil, abs, sqrt Mathematik.
min(...), max(...) Minimum/Maximum von Zahlen.
sin, cos, atan2, pi() Trigonometrie, in Bogenmaß.
len(x) Länge eines Strings, einer Liste oder einer Map.
type(x) Name des Typs.
is(x, Class) Prüft eine Klasse oder ein Enum.
random(), random(n), random(a, b) Dezimalzahl 0–1, Ganzzahl 0–n, Ganzzahl a–b.
chance(p) true mit Wahrscheinlichkeit p (0–1).
pick(list) Zufälliges Element.
now() Aktuelle Millisekunden.
id("ns:path") Erstellt einen Identifier.
item(id, count?, name?) Erstellt einen ItemStack.
color(text) Wandelt & in Farbcodes um.
broadcast(msg) Nachricht an alle Spieler.
run(command) Führt einen Spielbefehl als Konsole aus. Notausgang: Das Befehlsformat gehört dem Spiel und kann sich ändern.
player(name) Spieler, der online ist, oder null.
players() Liste der Spieler.
world(id?) Welt (standardmäßig die Oberwelt).
mod_loaded(id) Ist eine andere Mod geladen?
config(name, values?, synced?) Deklariert oder liest eine Einstellungsdatei der Mod.
listen(channel, fun(data, player)) Empfängt Daten auf einem Kanal der Mod.
send(player, channel, data) Sendet Daten vom Server an einen Spieler.
send_to_server(channel, data) Sendet Daten vom Client an den Server.
server Der Server.
tick Aktueller Tick.
game_version, namespace Minecraft-Version und der Namensraum der Mod.

Member von Strings

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

Member von Listen

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().

Member von Maps

keys(), values(), has(k), get(k, default?), remove(k), size; dazu direkter Zugriff mit map.key oder map["key"].

Spielobjekte

Namen nutzen snake_case (max_health) und sind dieselben Member wie in Kotlin (maxHealth). Enums werden als Strings benutzt (player.game_mode = "creative"). Details zu jedem in Die Welt und die Spieler.

Typ Eigenschaften Methoden
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 (mit optionalen Zuständen), 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 alles aus 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 (Speicher) keys; data["key"] liest und schreibt 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

Objekte der Weltgenerierung

Das, was die Funktionen einer Deklaration der Weltgenerierung erhalten, während Chunks erzeugt werden. Erklärt auf der Seite Generierung per Code.

Objekt Eigenschaften Methoden
world (Strukturbau) x, y, z, seed, min_y, max_y block, state, is_air, is_in, can_stay, set (mit optionalen Zuständen), inside, surface, top, flow, structures, place_file
plan (Strukturplan) chunk_x, chunk_z, seed, min_y height, biome, column, file_size
site (Strukturbau) x, y, z, radius, min_y, max_y, data, seed
world (terrain) 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 (Biomoberfläche) x, y, z, depth_above, depth_below, surface_depth, steep noise

Argumenttypen für Befehle

player, int, number, bool, string (ein Wort), text (der Rest der Zeile), id. Häng ? an, um es optional zu machen.

Limits

  • 2.000.000 Schritte pro Aufruf (Event, Befehl oder Timer).
  • 200 verschachtelte Aufrufe (Rekursion).
  • Bereiche mit bis zu 1.000.000 Elementen.