A platform library for creating Minecraft plugins with ease.
This library includes a lightweight, Spring-Boot-like class management system:
- It uses reflection to scan the project tree for annotated classes and automatically injects them into a simple dependency container.
- Other components can then easily access and use these injected classes — making development more modular, clean, and intuitive.
This project uses code from okaeri-platform, originally created by Dawid Sawicki.
Significant changes have been made, including:
- Moving from Maven to Gradle
- Adding LiteCommands support in place of okaeri-commands
- Modified serdes for better ItemStack support
- And some other features to speed up plugin development even more.
Also, my own bukkit-utils are bundled with the platform
The original project is licensed under the MIT License, which is retained in this repository.
CustomAmountSelectionGui

GuiItemInfomoneyDisplay = newGuiItemInfo(
13,
XMaterial.GOLD_INGOT,
"&6&lWithdraw Money",
Arrays.asList(
"&7Withdraw from your bank account",
"",
"&fCurrent Balance: &a$" + balance,
"&fWithdraw Amount: &e${VALUE}",
"&fRemaining: &a${REMAINING}",
"",
"&7Shift-click for ±$1000",
"&eClick to withdraw!"
)
);
AmountSelectionGui.builder()
.title("&8Bank Withdrawal")
.displayItem(moneyDisplay)
.initialValue(100)
.minValue(1)
.maxValue(balance)
.increaseStep(100)
.decreaseStep(100)
.increaseStepShift(1000)
.decreaseStepShift(1000)
.rows(4)
.additionalPlaceholders(integer -> Map.of("{REMAINING}", balance - integer))
.onConfirm(amount -> {
player.sendMessage(TextUtil.color("&aWithdrew &e$" + amount + " &afrom your account!"));
// Add actual withdrawal logic here
})
.build()
.open(player);WaitingTask
WaitingTask.builder()
.actionName("TEST")
.duration(Duration.ofSeconds(5))
.successAction(() -> player.sendMessage("!!!"))
.build()
.start(player);Bukkit
repositories {
mavenCentral()
maven("https://jitpack.io/")
maven("https://storehouse.okaeri.eu/repository/maven-releases/")
maven("https://repo.panda-lang.org/releases")
}
dependencies {
implementation("io.github.drownek:platform-bukkit:{version}")
}repositories {
mavenCentral()
maven { url 'https://jitpack.io/' }
maven { url 'https://storehouse.okaeri.eu/repository/maven-releases/' }
maven { url 'https://repo.panda-lang.org/releases' }
}
dependencies {
implementation 'io.github.drownek:platform-bukkit:{version}'
}<repositories>
<repository>
<id>okaeri-repo</id>
<url>https://storehouse.okaeri.eu/repository/maven-public/</url>
</repository>
<repository>
<id>panda-repo</id>
<url>https://repo.panda-lang.org/releases</url>
</repository>
<repository>
<id>jitpack-repo</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.github.drownek</groupId>
<artifactId>platform-bukkit</artifactId>
<version>{version}</version>
</dependency>
</dependencies>Velocity
repositories {
mavenCentral()
maven("https://storehouse.okaeri.eu/repository/maven-releases/")
}
dependencies {
implementation("io.github.drownek:platform-velocity:{version}")
}repositories {
mavenCentral()
maven { url 'https://storehouse.okaeri.eu/repository/maven-releases/' }
}
dependencies {
implementation 'io.github.drownek:platform-velocity:{version}'
}<repositories>
<repository>
<id>okaeri-repo</id>
<url>https://storehouse.okaeri.eu/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.github.drownek</groupId>
<artifactId>platform-velocity</artifactId>
<version>{version}</version>
</dependency>
</dependencies>You can look at an example plugin that shows basic functionality like a database, LiteCommands usage, and injector.
Project is licensed under MIT.
This means that...
- ✅ You can freely use, copy, modify, and distribute this project, even for commercial purposes.
- 🧾 You must include the original license and copyright notice in any copies or substantial portions.
- ❌ The software is provided "as is", without warranty of any kind. The author is not liable for any damages or issues caused by using it.
