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