Player API
Инструменты для взаимодействия с игроком: сообщения, телепорт, позиция, ввод данных и многое другое. Объект
Player доступен в скриптах запущенных от имени игрока, либо получен через Server. Методы
getName() → String
Получить никнейм игрока.
var name = Player.getName();
Player.sendMessage("Привет, " + name + "!");
Player.sendMessage("Привет, " + name + "!");
sendMessage(text)
Отправить игроку сообщение в чат. Поддерживает §-коды цвета.
Player.sendMessage("§aЗелёный текст");
Player.sendMessage("§cКрасный текст");
Player.sendMessage("§cКрасный текст");
teleport(x, y, z)
Телепортировать игрока на координаты.
Player.teleport(0, 64, 0);
getPos() → {x, y, z}
Получить текущую позицию игрока.
var pos = Player.getPos();
Player.sendMessage("X: " + pos.x + " Y: " + pos.y);
Player.sendMessage("X: " + pos.x + " Y: " + pos.y);
input(prompt, callback)
Запросить у игрока ввод текста через чат. Callback вызывается с введённой строкой.
Player.input("Введите ваше имя:", function(answer) {
Player.sendMessage("Вы ввели: " + answer);
});
Player.sendMessage("Вы ввели: " + answer);
});
getServerPlayer() → ServerPlayerEntity
Получить нативный объект ServerPlayerEntity для низкоуровневых операций.
var sp = Player.getServerPlayer();
Советы
- Проверяйте что
Playerне null, если скрипт запускается от сервера - Для отправки всем игрокам используйте
Server.broadcast()
Server API
Управление сервером: команды, список игроков, broadcast, тики.
Методы
executeCommand(command)
Выполнить команду от имени сервера (без слеша в начале).
Server.executeCommand("time set day");
// Выдать предмет игроку
var p = Server.getRandomPlayer();
Server.executeCommand("give " + p.getName() + " minecraft:diamond");
// Выдать предмет игроку
var p = Server.getRandomPlayer();
Server.executeCommand("give " + p.getName() + " minecraft:diamond");
broadcast(message)
Отправить сообщение всем игрокам сервера.
Server.broadcast("§6[Сервер] Привет всем!");
getOnlinePlayer() → String[]
Получить список никнеймов всех онлайн-игроков.
var list = Server.getOnlinePlayer();
Server.broadcast("Онлайн: " + list.join(", "));
Server.broadcast("Онлайн: " + list.join(", "));
getPlayerCount() → int
Получить количество онлайн-игроков.
var count = Server.getPlayerCount();
Server.broadcast("Игроков онлайн: " + count);
Server.broadcast("Игроков онлайн: " + count);
getMaxPlayers() → int
Получить максимальное число слотов сервера.
var max = Server.getMaxPlayers();
getPlayerByName(nickname) → PlayerAPI
Найти игрока по никнейму. Возвращает PlayerAPI или null.
var p = Server.getPlayerByName("Steve");
if (p) p.sendMessage("Привет!");
if (p) p.sendMessage("Привет!");
getRandomPlayer() → PlayerAPI
Получить случайного онлайн-игрока.
var lucky = Server.getRandomPlayer();
if (lucky) lucky.sendMessage("§dТы выбран!");
if (lucky) lucky.sendMessage("§dТы выбран!");
getTicks() → long
Получить текущий тик сервера.
var ticks = Server.getTicks();
Hitbox API
Создание невидимых зон-триггеров. Поддерживает именованные хитбоксы (защита от дублирования при перезапуске скрипта), триггер входа, выхода и клика.
Создание
Hitbox.create(x, y, z, width, height) → HitBoxEntity
Создать анонимный хитбокс.
var zone = Hitbox.create(0, 64, 0, 3.0, 2.0);
Hitbox.create(name, x, y, z, width, height) → HitBoxEntity
Создать именованный хитбокс. При повторном вызове с тем же именем вернёт существующий (не создаст дубликат).
// Рекомендуемый способ — всегда давать имя
var zone = Hitbox.create("spawn_zone", 0, 64, 0, 4.0, 2.5);
var zone = Hitbox.create("spawn_zone", 0, 64, 0, 4.0, 2.5);
onEnter — вход в зону
Срабатывает один раз при входе игрока. Повторно сработает только после выхода и нового входа.
var zone = Hitbox.create("my_zone", 0, -60, 0, 3.0, 2.0);
Hitbox.onEnter(zone.getEntity(), function(e) {
e.player.sendMessage("§aВы вошли в зону!");
// e.x, e.y, e.z — координаты игрока
});
Hitbox.onEnter(zone.getEntity(), function(e) {
e.player.sendMessage("§aВы вошли в зону!");
// e.x, e.y, e.z — координаты игрока
});
onExit — выход из зоны
Hitbox.onExit(zone.getEntity(), function(e) {
e.player.sendMessage("§cВы покинули зону");
});
e.player.sendMessage("§cВы покинули зону");
});
onInteract — клик ПКМ
Hitbox.onInteract(zone.getEntity(), function(e) {
e.player.sendMessage("§bВы нажали на хитбокс!");
});
e.player.sendMessage("§bВы нажали на хитбокс!");
});
Удаление
Hitbox.remove(zone.getEntity()); // удалить хитбокс
Важно
- Всегда давайте хитбоксу имя через
create("name", ...)— это предотвращает дублирование при перезапуске скрипта - Удаляйте хитбоксы при завершении игры/раунда через
Hitbox.remove() - Рекомендуемый макс. размер: 10×10
Event API
Подписка на игровые события игрока: прыжок, присед, спринт, разрушение/установка блоков.
Методы
Event.onJump(player, callback)
Срабатывает когда игрок прыгает.
Event.onJump(Player.getServerPlayer(), function(e) {
e.player.sendMessage("Прыжок!");
});
e.player.sendMessage("Прыжок!");
});
Event.onCrouch(player, callback)
Срабатывает при приседании/вставании.
Event.onCrouch(Player.getServerPlayer(), function(e) {
e.player.sendMessage("Присел");
});
e.player.sendMessage("Присел");
});
Event.onSprint(player, callback)
Срабатывает при начале/конце спринта. Объект события содержит
isSprinting.Event.onSprint(Player.getServerPlayer(), function(e) {
if (e.isSprinting) {
e.player.sendMessage("§6Бежишь!");
}
});
if (e.isSprinting) {
e.player.sendMessage("§6Бежишь!");
}
});
Event.onBlockBreak(player, callback)
Срабатывает когда игрок ломает блок. Событие содержит
player, x, y, z, block.Event.onBlockBreak(Player.getServerPlayer(), function(e) {
e.player.sendMessage("Сломал блок на " + e.x + " " + e.y + " " + e.z);
});
e.player.sendMessage("Сломал блок на " + e.x + " " + e.y + " " + e.z);
});
Event.onBlockPlace(player, callback)
Срабатывает при установке блока игроком.
Event.onBlockPlace(Player.getServerPlayer(), function(e) {
e.player.sendMessage("Поставил блок!");
});
e.player.sendMessage("Поставил блок!");
});
World API
Взаимодействие с игровым миром: установка блоков, взрывы.
Методы
World.setBlock(x, y, z, blockId)
Установить блок по координатам. ID блока в формате Minecraft namespace.
World.setBlock(0, 64, 0, "minecraft:diamond_block");
World.setBlock(0, 65, 0, "minecraft:air"); // убрать блок
World.setBlock(0, 65, 0, "minecraft:air"); // убрать блок
World.spawnExplosion(x, y, z, power)
Создать взрыв в точке с заданной силой.
World.spawnExplosion(0, 64, 0, 3.0); // сила как у TNT ~4.0
Entity API
Создание и управление кастомными NPC-сущностями с GeckoLib-моделями и анимациями.
Создание сущности
Entity.create(pos, name, modelPath, animationPath, texturePath) → EntityHandle
Создать NPC в мире. Пути — относительно ресурспака
prochercengine_rp.var npc = Entity.create(
{ x: 0, y: 64, z: 0 },
"Охранник",
"geo/guard.geo.json",
"animations/guard.json",
"textures/guard.png"
);
{ x: 0, y: 64, z: 0 },
"Охранник",
"geo/guard.geo.json",
"animations/guard.json",
"textures/guard.png"
);
Методы EntityHandle
setCustomName(name)
Установить имя над головой NPC.
npc.setCustomName("§6Торговец");
setModel(modelPath)
Сменить модель.
npc.setModel("geo/new_model.geo.json");
setTexture(texturePath)
Сменить текстуру.
npc.setTexture("textures/new_skin.png");
setAnimation(animationPath)
Сменить файл анимации.
npc.setAnimation("animations/idle.json");
getPos() → Vec3d
Получить позицию NPC.
var pos = npc.getPos();
kill() / remove()
Убить или удалить сущность из мира.
npc.kill();
npc.remove();
npc.remove();
Item API
Создание кастомных предметов с GeckoLib-моделями, их выдача игрокам и спавн в мире.
Создание предмета
Item.create(name, modelPath, displayPath, animationPath) → ItemHandle
Зарегистрировать кастомный предмет.
var sword = Item.create(
"MagicSword",
"geo/sword.geo.json",
"display/sword.json",
"animations/sword.json"
);
"MagicSword",
"geo/sword.geo.json",
"display/sword.json",
"animations/sword.json"
);
Методы ItemHandle
give(playerNameOrPlayerAPI)
Выдать предмет игроку по имени или через PlayerAPI.
sword.give("Steve");
sword.give(Player); // или через объект PlayerAPI
sword.give(Player); // или через объект PlayerAPI
spawn(pos)
Заспавнить предмет в мире как дроп.
sword.spawn({ x: 0, y: 65, z: 0 });
getName() / getModelPath() / getAnimationPath()
Получить параметры предмета.
var name = sword.getName();
Particle API
Воспроизведение кастомных частиц из JSON-файлов в директории
config/ProchercEngine/particles/. Поддерживает Bedrock и Java форматы. Методы
Particle.spawn(name, x, y, z)
Воспроизвести частицу в координатах (видно всем).
Particle.spawn("explosion", 0, 64, 0);
Particle.spawn(name, x, y, z, player)
Воспроизвести частицу только для конкретного игрока.
Particle.spawn("sparkle", 0, 64, 0, Player.getServerPlayer());
Particle.spawn(name, entity)
Воспроизвести частицу на позиции сущности.
Particle.spawn("aura", npc.getEntity());
Формат файла частицы
Файлы частиц хранятся в config/ProchercEngine/particles/ с расширением .particle.json. Поддерживается как Bedrock-формат частиц, так и Java-формат.
Time API
Управление игровым временем: заморозка, установка, ожидание.
Методы
Time.wait(seconds)
Приостановить выполнение скрипта на N секунд.
Time.wait(3.0); // ждать 3 секунды
Time.setTime(ticks)
Установить время (0–24000).
Time.setTime(6000); // полдень
Time.setTime(18000); // полночь
Time.setTime(18000); // полночь
Time.freezeTime()
Заморозить течение времени.
Time.freezeTime();
Time.freezeResume()
Возобновить течение времени.
Time.freezeResume();
Тики
0 = Рассвет (6:00)
6000 = Полдень (12:00)
12000 = Закат (18:00)
18000 = Полночь (0:00)
24000 = Конец цикла
6000 = Полдень (12:00)
12000 = Закат (18:00)
18000 = Полночь (0:00)
24000 = Конец цикла
👤 Мой профиль
Никнейм
Загрузка...
Email
Загрузка...
Premium
Описание
Нет описания
Бейджи
Нет бейджей
⚙️ Настройки
Поиск пользователей
Профиль
Тема и фон
Опасная зона
Сообщества
Загрузка сообществ...