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