Here, here, here, and here, too.
All of this is called Final Part from Limbo - Geometry Dash, also known as Limbo Keys.
This plugin is based on this level mechanic.
- Key storage for opening crates is saved in a database, configurable in config.yml.
- Key restoration if an unexpected event occurs while opening a crate (server shutdown, player disconnects before completion, etc.).
- Ability to create an unlimited number of crates with different types and unique rewards.
- Execution of reward commands as the console, eliminating the need for integration with other plugins.
- Creation of floating texts (see Dependencies).
| Command | Permission | Description |
|---|---|---|
addkeys <player: str> <value: int> |
limbo.crates.addkeys |
Give a specific player a certain number of keys |
takekeys <player: str> <value: int> |
limbo.crates.talekeys |
Take away a certain number of keys from a player |
mykeys |
limbo.crates.mykeys (default) |
Check the number of keys you have |
createcrate <name: str> |
limbo.crates.createcrate |
Enter crate creation mode. Use the command again to exit the mode |
deletecrate <name: str> |
limbo.crates.deletecrate |
Delete a specific crate |
// Example of working with player keys
/** @var \Taskov1ch\LimboCrates\keys\Keys */
$keys = Server::getInstance()->getPlugin("LimboCrates")->getKeysManager();
/** @var string */
$name = $player->getName();
// Add keys
$keys->addKeys($name, 999);
// Take keys
$keys->takeKeys($name, 999);
// Get the number of keys (Promise)
$keys->getKeys($name)->onCompletion(
fn (int $keys) => var_dump($keys),
fn () => var_dump("?")
); // Example of working with crates
/** @var \Taskov1ch\LimboCrates\crates\Crates */
$crates = Server::getInstance()->getPlugin("LimboCrates")->getCratesManager();
// Register a crate
$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"]
]
]
);
// Unregister a crate
$crates->unregisterCrate("example"); No issues were found during testing, and any discovered were fixed. However, ISSUES is always open.