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.