Skip to content

1.1 update.#1

Merged
marioogg merged 17 commits intomasterfrom
beta
Feb 21, 2026
Merged

1.1 update.#1
marioogg merged 17 commits intomasterfrom
beta

Conversation

@marioogg
Copy link
Copy Markdown
Owner

Update 1.1 Summary — February 21, 2026

Folia Support

  • Added SchedulerUtil (me.marioogg.command.scheduler) that detects Folia at runtime by checking for io.papermc.paper.threadedregions.RegionizedServer via reflection.
  • All Folia scheduler calls (getAsyncScheduler, getGlobalRegionScheduler, entity.getScheduler) are invoked through reflection so the project still compiles against spigot-api only.
  • CommandNode now routes async = true commands through SchedulerUtil.runAsync() instead of calling BukkitScheduler directly, making it Folia-transparent.

BungeeCord Support

  • Added BungeeCommandHandler — entry point mirroring CommandHandler, accepts a net.md_5.bungee.api.plugin.Plugin.
  • Added BungeeCommandNode — mirrors CommandNode using BungeeCord's CommandSender and ProxiedPlayer.
  • Added BungeeBukkitCommand — implements Command + TabExecutor, registers itself via PluginManager.
  • Added BungeeProcessor<T> and BungeeParamProcessor — processor layer for BungeeCord with built-in support for int, long, double, float, and boolean.
  • Reuses @Command, @Help, @Param, ArgumentNode, and HelpNode from the core module.

Velocity Support

  • Added VelocityCommandHandler — entry point that takes both Object plugin and ProxyServer since Velocity plugins don't extend a base class. Exposes init(), registerCommands(), and registerProcessors().
  • Added VelocityCommandNode — mirrors CommandNode using CommandSource and com.velocitypowered.api.proxy.Player.
  • Added VelocityRawCommand — implements RawCommand, registers via CommandManager.metaBuilder(), handles tab completion via suggest().
  • Added VelocityProcessor<T> and VelocityParamProcessor — processor layer using Adventure's Component API, with built-in support for int, long, double, float, and boolean.
  • Async commands use Velocity's ProxyServer#getScheduler().buildTask(...).schedule().

Java 17 Compatibility Fixes

  • Replaced all ArrayList.getFirst() calls with get(0) across CommandNode, BungeeCommandNode, and VelocityCommandNode.
  • Replaced all ArrayList.getLast() calls with get(size - 1) across the same classes.
  • Removed unused log4j Logger fields and imports introduced during editing.
  • Replaced log.error(e) with e.printStackTrace() to stay consistent with the rest of the codebase.

Documentation

  • README rewritten with comprehensive usage docs for all three platforms.
  • Added @Command and @Param annotation 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.)

@marioogg marioogg merged commit 3707323 into master Feb 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant