Нашёл репозитории с примерами кода. Уже давно про него знал, но не додумался до этого момента его скинуть. Вот сам репозитории:
https://github.com/JaylyDev/ScriptAPI/tree/stable/scripts
https://github.com/JaylyDev/ScriptAPI/tree/stable/scripts
GitHub
ScriptAPI/scripts at stable · JaylyDev/ScriptAPI
Community Driven Scripts for Minecraft's Scripting - JaylyDev/ScriptAPI
👍3
Раз в неделю или того хуже в канале появляется пост))
Так вот, хотел бы с вами поделиться одной мелкой деталью, лично у меня оно возникло час или около того назад.
При попытке отмены события отправки сообщения(ChatSendBeforeEvent) у меня не получается, если эта инструкция отмены находится в system.run.
Тоесть:
Если что, вызовы через system.run мне нужны были для тех команд, которые запрашивали привилегии(в события типа BeforeEvents это частое явление).
Будьте бдительны, и делитесь с такими мелочами под этим постом
Так вот, хотел бы с вами поделиться одной мелкой деталью, лично у меня оно возникло час или около того назад.
При попытке отмены события отправки сообщения(ChatSendBeforeEvent) у меня не получается, если эта инструкция отмены находится в system.run.
Тоесть:
// События, другой код и т.д...
system.run(() => {
ev.cancel = true; // Пытаемся отменить событие, но не получается
// Другой код...
});
Если что, вызовы через system.run мне нужны были для тех команд, которые запрашивали привилегии(в события типа BeforeEvents это частое явление).
Будьте бдительны, и делитесь с такими мелочами под этим постом
👍1
На ChestUI вышло обновление, которое добавляет возможность создать интерфейс в стиле печки через класс FurnaceFormData.
Параметры класса FurnaceFormData:
Как-то так. По туториалу на ChestUI - его не будет, скорее всего.
Параметры класса FurnaceFormData:
declare class FurnaceFormData {
/**
* @param isLit Указывает, включена ли печь в пользовательском интерфейсе.
*/
constructor(isLit?: boolean);
/**
* @remarks Количество слотов в интерфейсе печи.
*/
public slotCount: number;
/**
* @remarks Этот метод устанавливает заголовок для интерфейса печи.
* @param text Текст заголовка для интерфейса печи.
*/
title(text: string | RawMessage): FurnaceFormData;
/**
* @remarks Добавляет кнопку в интерфейс печи с иконкой из ресурспака.
* @param slot Слот, в котором будет отображаться предмет. Значение ограничено от 0 до 2.
* @param itemName Название предмета, которое будет отображаться.
* @param itemDesc Описание (лора) предмета, которое будет отображаться.
* @param texture ID типа или путь к текстуре. **НЕОБХОДИМО УКАЗАТЬ ПРЕФИКС ПРЕДМЕТА!** Для ванильных предметов это `minecraft:`. Смотрите `typeIds.js` для действительных предметов и значений данных.
* @param stackAmount Размер стака предмета. Ограничено значениями от 1 до 99.
* @param durability Прочность предмета. По умолчанию 0. Ограничено значениями от 1 до 99.
* @param enchanted Если предмет зачарован, укажите true.
*/
button(slot: number, itemName?: string | RawMessage, itemDesc?: (string | RawMessage)[], texture?: string, stackAmount?: number, durability?: number, enchanted?: boolean): FurnaceFormData;
/**
* @remarks
* Создает и отображает всплывающее окно. Возвращает результат
* асинхронно, когда игрок подтверждает или отменяет
* диалог.
*
* Этот метод не может быть вызван в режиме только для чтения.
*
* @param player
* Игрок, для которого будет отображен этот диалог.
*/
show(player: Player): Promise<ActionFormResponse>;
};Как-то так. По туториалу на ChestUI - его не будет, скорее всего.
GitHub
GitHub - Herobrine643928/Chest-UI
Contribute to Herobrine643928/Chest-UI development by creating an account on GitHub.
❤1👍1
Команда разработчиков
На ChestUI вышло обновление, которое добавляет возможность создать интерфейс в стиле печки через класс FurnaceFormData. Параметры класса FurnaceFormData: declare class FurnaceFormData { /** * @param isLit Указывает, включена ли печь в пользовательском…
И да, спустя 5 дней освещаю об этом))
👍2
А мы то дожили, увидели на свет кастомные команды. С настраиваемым синтаксисом. Но обо всём по-подробнее.
В альфа-версии особо ничего не было добавлено, пока в бета-версии модуля добавили создание команд. Делается оно через класс CustomCommandRegistry, содержащийся в классе World.
В официальной документации пример написан на TS, но нам будет легче на JS написать. Понятнее и удобнее. Сам пример:
import { world, system } from "@minecraft/server";
system.beforeEvents.startup.subscribe(({ customCommandRegistry }) => {
customCommandRegistry.registerCommand({
name: 'example:example',
description: 'Пример команды',
permissionLevel: 'Any',
optionalParameters: [{
type: 0,
name: 'example'
}]
}, (example) => {
world.sendMessage(`Число в числовом типе: ${example}`);
});
});Давайте же разберём что тут да как. Я через событие старта скриптов создаю методом "registerCommand" новую команду "example:example". Задаю ему описание(при частичном вводе команды выводит подсказку и описание команды), после задаю разрешения.
Типы разрешения:
Any - все,
GameDirectors - игроки с оператором и командный блок,
Admin - игроки с оператором, но не командные блоки,
Host - только хост мира(предположительно работает только в локальном мире),
Owner - только с терминала(консоли) сервера.
После идут опции команды. name, логично, название параметра, а type - тип опции, оно может быть числовым, строковым, булевым и другим. Получать значение параметров надо, вводя их название в функцию callback(в этом примере мы через имя параметра example возвращаем параметр).
А вердикт то ясен - пока создание кастомных команд сырое. Оно требует доработок, к примеру чтобы возвращал экземпляр игрока(дабы взаимодействовать с отправителем команды). Лучшее используйте команды через chatSend, в них больше функционала, как по мне. Ждём доработок и новых возможностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
👍1
Давно не было постов. На какую тему выпустить публикацию первым?
Final Results
43%
ChestUI 🌰 🌰
2%
Введение в LeviLamina 🍃
43%
Использование нейросетей для аддонов + переделка публикации про слушатели событии 📗
11%
Узнать результат 📊
👏1
Команда разработчиков
Давно не было постов. На какую тему выпустить публикацию первым?
Итог - ChestUI. Пост будет написан на днях, после него будет 2 по количеству голосов выбранная тема и после 3-ая.
👍2
На этот раз захотелось в телеграф статье расписать всё. Держите:
ChestUI: Введение
UPD: следующий пост будет про использование нейросетей при создании аддонов и скриптов
ChestUI: Введение
UPD: следующий пост будет про использование нейросетей при создании аддонов и скриптов
Telegraph
ChestUI: Введение
📦 Глава "Сторонние модули". Часть 1. Модуль "ChestUI" В прошлых частях мы разобрались с формами из @minecraft/server-ui, которые позволяют создавать модальное окно, слайдеры и кнопки. Но что, если мы хотим что-то более "ванильное"? Представьте: игрок открывает…
👏1
Anonymous Poll
81%
Да
5%
Нет
14%
Узнать результат
🔥2