API

Справочник CraftScript

Все доступные ключевые слова, операторы, функции и члены.

Ключевые слова

Ключевое слово Назначение
let / var / const Объявление переменных (const нельзя присвоить заново).
fun Именованные функции и лямбды fun(x) { }.
class, extends, this, super Классы и наследование.
enum Перечисления.
import, from, as Модули.
if, else, while, for … in, break, continue, return Управление потоком.
and, or, not (или &&, ||, !) Логика.
true, false, null Литералы.
mod, item, block, recipe Объявления контента.
ore, tree, patch, structure, biome, dimension, terrain, biome_map, carver Объявления генерации мира. Смотри Генерация мира и Генерация кодом.
on … priority Обработчик события.
command … requires … alias … describe Команды.
every, after + ticks/seconds/minutes Таймеры.

Комментарии: // строка, # строка, /* блок */. Инструкции разделяются переводами строки (или ;).

Операторы

Оператор Значение
+ - * / % Арифметика. + склеивает строки, если одна из сторон — строка; он также объединяет списки.
== != < <= > >= Сравнение. Id и строка равны, если обозначают один и тот же id.
= += -= *= /= Присваивание.
?? Значение по умолчанию, если левая сторона — null.
?. Безопасный доступ: возвращает null вместо ошибки.
a..b Диапазон чисел включительно.
x[i] Индекс списка (отрицательный считается с конца), ключ словаря, символ строки.

Ложные значения: null, false, 0, "", пустой список или словарь.

Встроенные функции

Функция Описание
print(...) Пишет в журнал сервера.
log(...) То же, что print, с именем мода.
str(x) Преобразует в строку.
num(x) Преобразует в число (или null).
int(x) Целая часть.
round, floor, ceil, abs, sqrt Математика.
min(...), max(...) Минимум/максимум чисел.
sin, cos, atan2, pi() Тригонометрия, в радианах.
len(x) Длина строки, списка или словаря.
type(x) Название типа.
is(x, Class) Проверяет класс или перечисление.
random(), random(n), random(a, b) Дробное 0–1, целое 0–n, целое a–b.
chance(p) true с вероятностью p (0–1).
pick(list) Случайный элемент.
now() Текущее время в миллисекундах.
id("ns:path") Создаёт идентификатор.
item(id, count?, name?) Создаёт ItemStack.
color(text) Превращает & в коды цветов.
broadcast(msg) Сообщение всем игрокам.
run(command) Выполняет игровую команду от имени консоли. Запасной выход: формат команды принадлежит игре и может меняться.
player(name) Игрок в сети или null.
players() Список игроков.
world(id?) Мир (по умолчанию Верхний мир).
mod_loaded(id) Загружен ли другой мод?
config(name, values?, synced?) Объявляет или читает файл настроек мода.
listen(channel, fun(data, player)) Принимает данные по каналу мода.
send(player, channel, data) Отправляет данные с сервера игроку.
send_to_server(channel, data) Отправляет данные с клиента на сервер.
server Сервер.
tick Текущий тик.
game_version, namespace Версия Minecraft и пространство имён мода.

Члены строк

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

Члены списков

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

Члены словарей

keys(), values(), has(k), get(k, default?), remove(k), size; плюс прямой доступ через map.key или map["key"].

Игровые объекты

Имена пишутся в snake_case (max_health) и соответствуют тем же членам, что и в Kotlin (maxHealth). Перечисления используются как строки (player.game_mode = "creative"). Подробности о каждом — на странице Мир и игроки.

Тип Свойства Методы
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 (с необязательными состояниями), 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 всё из 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 (хранилище) keys; data["key"] читает и записывает 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

Объекты генерации мира

То, что получают функции объявления генерации мира, пока создаются чанки. Описано на странице Генерация кодом.

Объект Свойства Методы
world (построение структуры) x, y, z, seed, min_y, max_y block, state, is_air, is_in, can_stay, set (с необязательными состояниями), inside, surface, top, flow, structures, place_file
plan (план структуры) chunk_x, chunk_z, seed, min_y height, biome, column, file_size
site (построение структуры) x, y, z, radius, min_y, max_y, data, seed
world (рельеф) seed, min_y, height biome
world (biome_map) seed tagged
ctx (карвер) seed, start_x, start_z, chunk_x, chunk_z, min_y, max_y carve
at (земля биома) x, y, z, depth_above, depth_below, surface_depth, steep noise

Типы аргументов команд

player, int, number, bool, string (одно слово), text (остаток строки), id. Добавь ?, чтобы сделать аргумент необязательным.

Ограничения

  • 2 000 000 шагов на вызов (событие, команду или таймер).
  • 200 вложенных вызовов (рекурсия).
  • Диапазоны до 1 000 000 элементов.