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 элементов.