Скрипт
// Импортируем необходимые права
import { system, world } from "@minecraft/server";
import { ActionFormData, ModalFormData } from "@minecraft/server-ui";
// Функция для отображения основного меню игроку
function menu(player) {
let form = new ActionFormData(); // Создаем новое окно формы
form.title("Выберите раздел"); // Устанавливаем заголовок формы
form.button("Поставить точку"); // Добавляем кнопку для установки точки
form.button("Удалить точку"); // Добавляем кнопку для удаления точки
form.button("Просмотреть точки"); // Добавляем кнопку для просмотра точек
form.show(player).then((res) => { // Отображаем форму игроку
if (res.canceled || res.selection === undefined) return; // Проверяем на отмену
// В зависимости от выбранной кнопки вызываем соответствующую функцию
if (res.selection === 0) {
setPoint(player); // Установка точки
} else if (res.selection === 1) {
deletePoint(player); // Удаление точки
} else if (res.selection === 2) {
viewPoints(player); // Просмотр точек
}
});
}
// Функция для установки точки
function setPoint(player) {
let form = new ModalFormData(); // Создаем новую модальную форму
form.title("Меню"); // Заголовок формы
form.textField("Введите название точки", "Название"); // Поле ввода для названия точки
form.show(player).then((res) => { // Отображаем форму
if (res.canceled || res.formValues === undefined) return; // Проверка на отмену
const pointName = res.formValues[0]; // Получаем название точки
if (pointName) { // Если название указано
const pos = player.location; // Получаем текущую позицию игрока
const pointTag = point:${player.name}:${pointName}; // Создаем тег точки
const positionString = ${pos.x},${pos.y},${pos.z}; // Форматируем позицию как строку
player.addTag(pointTag); // Добавляем тег точки игроку
player.addTag(pos:${pointTag}:${positionString}); // Сохраняем позицию в тегах
player.sendMessage([Точки] Успешно создана точка ${pointName}); // Уведомляем игрока
}
});
}