Releases: marioogg/command
Releases · marioogg/command
v2.0-b1
What's New
- Added javadocs in Bungee module (a96b31d), Velocity module (07ba488) and Bukkit module + proccessors (5e83805) by @marioogg
- Removed the "to be finished on README about flags by @marioogg in 29e06f1
- Added customizable error messages for Bukkit (b0227d9), Bungee (ad817d5), and Velocity (96cae0b) by @marioogg
- Added command cooldown system by @marioogg in bebeb70
- Implemented cooldown system in Bukkit (1a44e20), Bungee (81d6226), and Velocity (29ce9ca)
Fixes
Full Changelog: ver/2.0-b1
1.1 Update
Update 1.1 Summary — February 21, 2026
Maven & Gradle Implementation
Maven: In your pom.xml, add the repository and dependency.
Important: Replace
VERSIONwith the latest version shown in the badge above.
<repositories>
<repository>
<id>marioogg</id>
<url>https://maven.marioogg.dev/repository/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>me.marioogg</groupId>
<artifactId>command</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>Gradle: In your build.gradle, add the repository and dependency.
Important: Replace
VERSIONwith the latest version shown in the badge above.
repositories {
maven { url 'https://maven.marioogg.dev/repository/public/' }
}
dependencies {
implementation 'me.marioogg.command:command:VERSION'
}Changelog:
Folia Support
- Added
SchedulerUtil(me.marioogg.command.scheduler) that detects Folia at runtime by checking forio.papermc.paper.threadedregions.RegionizedServervia reflection. - All Folia scheduler calls (
getAsyncScheduler,getGlobalRegionScheduler,entity.getScheduler) are invoked through reflection so the project still compiles against spigot-api only. CommandNodenow routesasync = truecommands throughSchedulerUtil.runAsync()instead of callingBukkitSchedulerdirectly, making it Folia-transparent.
BungeeCord Support
- Added
BungeeCommandHandler— entry point mirroringCommandHandler, accepts anet.md_5.bungee.api.plugin.Plugin. - Added
BungeeCommandNode— mirrorsCommandNodeusing BungeeCord'sCommandSenderandProxiedPlayer. - Added
BungeeBukkitCommand— implementsCommand+TabExecutor, registers itself viaPluginManager. - Added
BungeeProcessor<T>andBungeeParamProcessor— processor layer for BungeeCord with built-in support forint,long,double,float, andboolean. - Reuses
@Command,@Help,@Param,ArgumentNode, andHelpNodefrom the core module.
Velocity Support
- Added
VelocityCommandHandler— entry point that takes bothObject pluginandProxyServersince Velocity plugins don't extend a base class. Exposesinit(),registerCommands(), andregisterProcessors(). - Added
VelocityCommandNode— mirrorsCommandNodeusingCommandSourceandcom.velocitypowered.api.proxy.Player. - Added
VelocityRawCommand— implementsRawCommand, registers viaCommandManager.metaBuilder(), handles tab completion viasuggest(). - Added
VelocityProcessor<T>andVelocityParamProcessor— processor layer using Adventure'sComponentAPI, with built-in support forint,long,double,float, andboolean. - Async commands use Velocity's
ProxyServer#getScheduler().buildTask(...).schedule().
Java 17 Compatibility Fixes
- Replaced all
ArrayList.getFirst()calls withget(0)acrossCommandNode,BungeeCommandNode, andVelocityCommandNode. - Replaced all
ArrayList.getLast()calls withget(size - 1)across the same classes. - Removed unused
log4jLoggerfields and imports introduced during editing. - Replaced
log.error(e)withe.printStackTrace()to stay consistent with the rest of the codebase.
Documentation
- README rewritten with comprehensive usage docs for all three platforms.
- Added
@Commandand@Paramannotation reference tables. - Added dedicated Registering Commands, Command Examples, @Help Example, and Custom Processor Example sections for each platform.
- Updated Parsing section to list built-in processors per platform.
- Marked all three To Do items as complete.
made with Copilot, and it's great, isn't it? (disclaimer: no other part of this code apart from this was made with AI, if this was vibecoded, trust me, your servers would be crashing QUICKLY.)