LimboCrates
и т. д.
Всё это называется Final Part из Limbo - Geometry Dash, также известный как Limbo Keys.
Данный плагин основан на данной фишке уровня.
Видео с обзором плагина
(Запись был ещё в момент, когда плагин находился на стадии разработки)
Особенности
- Сохранение ключей для открытия ящиков хранится в БД, которую можно настроить в config.yml.
- Возвращение ключа игроку, если при открытии ящика произошли непредвиденные обстоятельства (сервер выключился, игрок вышел с сервера, так и не закончив открытие и т. д.).
- Создание неограниченного количества ящиков разных типов с отдельными наградами.
- Выполнение команд (наград) от имени консоли, тем самым плагин не требует интеграции с другими плагинами.
- Создание летающих текстов (см. Зависимости).
Команды
Команда | Пермишен | Описание |
---|---|---|
addkeys <player: str> <value: int> |
limbo.crates.addkeys |
Дать нужному игроку определенное кол-во ключей |
takekeys <player: str> <value: int> |
limbo.crates.takekeys |
“Отжать” у нужного игрока определенное кол-во ключей |
mykeys |
limbo.crates.mykeys (default) |
Команда чтобы посмотреть кол-во имеющихся ключей |
createcrate <name: str> |
limbo.crates.createcrate |
Перейти в состояние создания ящика. Повторное использование команды чтобы выйти из состояния создания ящика |
deletecrate <name: str> |
limbo.crates.deletecrate |
Удалить нужный ящик |
Для разработчиков
// Пример работы с ключами игрока
/** @var \Taskov1ch\LimboCrates\keys\Keys */
$keys = Server::getInstance()->getPlugin("LimboCrates")->getKeysManager();
/** @var string */
$name = $player->getName();
// Добавить ключей
$keys->addKeys($name, 999);
// "Отжать" ключи
$keys->takeKeys($name, 999);
// Получить кол-во ключей (Promise)
$keys->getKeys($name)->onCompletion(
fn (int $keys) => var_dump($keys),
fn () => var_dump("?")
);
// Пример работы с ящиками
/** @var \Taskov1ch\LimboCrates\crates\Crates */
$crates = Server::getInstance()->getPlugin("LimboCrates")->getCratesManager();
// Регистрация ящика
$crates->registerCrate(
"example",
new Position(0, 4, 0, $world),
"Example Crate",
[
[
"name" => "Example Reward",
"chance" => 50,
"commands" => ["give {player} diamond 64"]
],
[
"name" => "Example Reward 2",
"chance" => 50,
"commands" => ["give {player} grass 64"]
]
]
);
// Удаление ящика
$crates->unregisterCrate("example");
Зависимости
Баги и недоработки
Во время тестирования ошибок не замечено, а те, что были обнаружены, исправлены. Однако ISSUES всегда открыт.
Упс?
Плагин писал расслабляясь, так что гкод как всегда гарантирован (да?)
Ссылки
Плагин
GitHub | Poggit CI | PHAR | ZIP | GitHub Release
Ресурс пак
GitHub | ZIP | GitHub Release