Команды управления
Основные команды для работы с файлами скриптов. Помните, что вы можете создавать до 10 файлов в своём мире.
| Команда | Описание |
|---|---|
| /code create <имя> | Создать новый файл скрипта в текущем мире |
| /code book <имя> | Выдать книгу для редактирования кода выбранного файла |
| /code save | Сохранить код из книги в руке (название книги должно быть именем файла) |
| /code reload | Перезагрузить все скрипты в текущем мире |
Важно: Для сохранения файла /code save вы должны держать в руке книгу, полученную через команду book. Название книги автоматически устанавливается как имя файла — не меняйте его.
Структура скрипта
Чтобы код заработал, он должен быть обернут в функцию с аннотацией @event. Вы можете писать несколько функций в одной книге.
@event
void onJoin(JoinWorldEvent e) {
// Твой код здесь
player.msg("&aHello world!")
}
Доступные события
Указывайте нужный тип в скобках после названия функции:
| Тип события | Описание |
|---|---|
| JoinWorldEvent | Игрок вошел в ваш мир |
| QuitWorldEvent | Игрок покинул ваш мир |
| BlockBreakEvent | Разрушение блока |
| BlockPlaceEvent | Установка блока |
| InteractEvent | Любое взаимодействие (ПКМ/ЛКМ) |
| DeathEvent | Смерть игрока |
| RespawnEvent | Возрождение |
Данные из событий
Внутри событий Interact, Place и Break доступны локальные переменные блока:
block_type — Тип блока (Material)
block_x, block_y, block_z — Координаты (числа)
action — Тип клика (только для Interact)
block_x, block_y, block_z — Координаты (числа)
action — Тип клика (только для Interact)
Переменные и Рандом
Глобальные: доступны всегда в этом мире (пишутся без var).
Локальные: живут только внутри выполнения кода (пишутся с var).
@event
void myLogic(InteractEvent e) {
// Глобальная переменная для всех
total_clicks = total_clicks + 1
// Случайное число от 1 до 10
var chance = random(1, 10)
if (chance == "7") {
player.msg("&eДжекпот! Вы нажали %total_clicks% раз!")
}
}
Работа с Инвентарем
Система позволяет полностью контролировать вещи игрока через .getInv() (или .getInventory()).
@event
void onGift(JoinWorldEvent e) {
// 1. Выдать предмет (Тип, Количество)
player.getInv().addItem(ItemStack(Material.BREAD, 16))
// 2. Посчитать количество предмета
var diamonds = player.getInv().count(Material.DIAMOND)
// 3. Очистить конкретный предмет (Материал, Количество)
if (diamonds == "64") {
player.getInv().clear(Material.DIAMOND, 64)
player.msg("&aВы обменяли стак алмазов на опыт!")
}
// 4. Очистить ВЕСЬ инвентарь
// player.getInv().clear()
}
Действия игрока и Алиасы
Вы можете использовать короткие или длинные версии команд:
| Команда | Алиас | Эффект |
|---|---|---|
.sendMessage("..") | .msg("..") | Отправить текст |
.getInventory() | .getInv() | Доступ к вещам |
e.setCancelled(true) | event.cancel() | Запретить событие |
Дополнительно:
player.setHealth(20.0) // Установить HP игроку
player.setFood(20) // Установить сытость игроку
player.setSaturation(5.0) // Установить Насыщенность игроку
broadcast("&7Всем привет!") // Сообщение которое увидят все игроки мира (обьявление)
// Телепорт (X, Y, Z) или (X, Y, Z, Yaw, Pitch)
player.teleport(Location(10.5, 64, 10.5))
Текст и Плейсхолдеры
В любой строке сообщения можно использовать:
%player_name%— Имя того, кто вызвал событие.%любая_переменная%— Значение вашей переменной.&— Цветовые коды (например,&6- золотой).