Skip to content

☄️ LiteCommands - Command framework for Velocity, Bukkit, Paper, BungeeCord, Minestom, Sponge, Fabric, JDA and future implementations.

License

Notifications You must be signed in to change notification settings

Rollczi/LiteCommands

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dependency

banner

Discord Sponsor Gradle Java

LiteCommands

Annotation based command framework for Velocity, Bukkit, Paper, BungeeCord, Minestom, Sponge, Fabric, JDA and future implementations.

📌 Helpful links

✨ Features

  • Simple Arguments @Arg & Optional arguments @OptionalArg
  • Flags - @Flag
  • Joiner - @Join remaining arguments into a string
  • Literal arguments - @Literal
  • @Quoted arguments for "quoted input!"
  • Asynchronous commands, argument parsing and completion. @Async
  • Context providers - e.g. @Sender Player, @Context World and more
  • Command shortcuts @Shortcut
  • Support for basic types: int, double, Duration, LocalDateTime, Location and more!
  • Support for collection types: List, Set, TreeSet, Queue, java array T[] and many others!
  • IntelliJ Plugin that provides annotation inspections, syntax highlighting and more!
  • Custom annotation validators. (example)
  • Programmatic API for creating more dynamic commands. (example)
  • Jakarta EE annotation validation. (extension)
  • ChatGPT suggestions. (extension)
  • Adventure Kyori support. (extension)
  • and more! ✨

📦 Platforms

💡 Command Example

This is an example of /hello <name> <amount> command:

@Command(name = "hello")
@Permission("dev.rollczi.helloworld")
public class HelloCommand {

    @Execute
    void command(@Sender CommandSender sender, @Arg String name, @Arg int amount) {
        for (int i = 0; i < amount; i++) {
            sender.sendMessage("Hello " + name);
        }
    }
}

Then we need to register the command in plugin main class: (in this case for Bukkit)

this.liteCommands = LiteBukkitFactory.builder("example-plugin")
    .commands(new HelloCommand())
    .build();

🚀 Get Started

➕ Add Panda Repository ❤️

maven("https://repo.panda-lang.org/releases")
<repository>
    <id>panda-repository</id>
    <url>https://repo.panda-lang.org/releases</url>
</repository>

➕ Add LiteCommands to dependencies

implementation("dev.rollczi:{artifact}:3.9.1")
<dependency>
    <groupId>dev.rollczi</groupId>
    <artifactId>{artifact}</artifactId>
    <version>3.9.1</version>
</dependency>

⚠️ Replace {artifact} with platform artifact
Add -parameters flag to your compiler to use all features (read more)

💖 GitHub Sponsors

@@ Special thanks to all sponsors for supporting me and my projects! ❤️ @@
Piotr Zych   Nadwey  

🔮 Official IntelliJ Plugin

With LiteCommands plugin, you can easily develop your commands within the IntelliJ IDEA environment. The plugin provides annotation inspections, tools for creating new command classes, syntax highlighting, code completion, and other useful features to make your development experience smoother and more efficient. How to install? litecommandsbanner-intellij

🌍 More Examples

➕ Official examples

➕ Plugins that use LiteCommands!

💖 Thanks for our partners!

JetBrains

JetBrains
Supports us with a free license for the most intelligent Java IDE - IntelliJ IDEA Ultimate

Reposilite

Reposilite
Provides us with a Maven repository for our artifacts - Reposilite Repository

YourKit

YourKit
Supports us with a innovative and intelligent tools for monitoring and profiling - YourKit Java Profiler