Команды управления

Основные команды для работы с файлами скриптов. Помните, что вы можете создавать до 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)

Переменные и Рандом

Глобальные: доступны всегда в этом мире (пишутся без 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))

Текст и Плейсхолдеры

В любой строке сообщения можно использовать: