Introdution
Have you ever face difficulty of creating even simple spigot command working well? Are you a begginer and you got lost creating a command with more then one argument?
A The library offers easy and elegant approach of creating commands.
Spigot/Paper library dedicated for simplifying commands registration for your plugin!
See the documentation to see more advanced examples!
Join the support discord and visit the #programming channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc
Patterns
Templates
Is the most streight-forward way of creating command! Just add annotation @FCommand above a method and that's it!
Getting started
1. Install dependency
<dependency>
<groupId>io.github.jwdeveloper.spigot.commands </groupId>
<artifactId>commands-framework-core </artifactId>
<version>1.0.1 </version>
</dependency>
2
. Create your first command
3. Use a command in the game
Contributing
Library documentation for contributors
Your improvements are welcome! Feel free to open an issue or pull request.
Have you ever face difficulty of creating even simple spigot command working well? Are you a begginer and you got lost creating a command with more then one argument?
A The library offers easy and elegant approach of creating commands.
Spigot/Paper library dedicated for simplifying commands registration for your plugin!
See the documentation to see more advanced examples!
Join the support discord and visit the #programming channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc
Patterns
/hello <name:Text> <count:Number> <job:Text[Miner, Fisherman, Farmer]>Click to expand...
Code (Java):
public
final
class Example
extends JavaPlugin
{
@Override
public void onEnable ( ) {
CommandsApi commandsApi = CommandsFramework. enable ( this ) ;
commands. create ( "/hello <name:Text> <age:number> <job:Text[Miner, Fisherman, Farmer]>" )
. onPlayerExecute (event ->
{
event. sender ( ). sendMessage ( "You called the hello command" ) ;
var name = event. getString ( "name" ) ;
var age = event. getNumber ( "age" ) ;
var job = event. getString ( "job" ) ;
event. sender ( ). sendMessage ( "Name: " + name + " Age: " + age + " Job: " + job ) ;
} ). register ( ) ;
}
}
@Override
public void onEnable ( ) {
CommandsApi commandsApi = CommandsFramework. enable ( this ) ;
commands. create ( "/hello <name:Text> <age:number> <job:Text[Miner, Fisherman, Farmer]>" )
. onPlayerExecute (event ->
{
event. sender ( ). sendMessage ( "You called the hello command" ) ;
var name = event. getString ( "name" ) ;
var age = event. getNumber ( "age" ) ;
var job = event. getString ( "job" ) ;
event. sender ( ). sendMessage ( "Name: " + name + " Age: " + age + " Job: " + job ) ;
} ). register ( ) ;
}
}
Is the most streight-forward way of creating command! Just add annotation @FCommand above a method and that's it!
Code (Java):
public
final
class MyHelloCommand
{
@FCommand (pattern = "/hello <name:Text> <age:Number> <job:[Miner,Fisherman,Farmer]" )
public void helloCommand (CommandSender sender, String name, int age, String job )
{
event. sender ( ). sendMessage ( "Name: " + name + " Age: " + age + " Job: " + job ) ;
}
}
public final class ExamplePlugin extends JavaPlugin {
@Override
public void onEnable ( ) {
MyHelloCommand helloCommand = new MyHelloCommand ( ) ;
Commands commands = CommandsFramework. enable ( this ) ;
commands. create (helloCommand ). register ( ) ;
}
}
{
@FCommand (pattern = "/hello <name:Text> <age:Number> <job:[Miner,Fisherman,Farmer]" )
public void helloCommand (CommandSender sender, String name, int age, String job )
{
event. sender ( ). sendMessage ( "Name: " + name + " Age: " + age + " Job: " + job ) ;
}
}
public final class ExamplePlugin extends JavaPlugin {
@Override
public void onEnable ( ) {
MyHelloCommand helloCommand = new MyHelloCommand ( ) ;
Commands commands = CommandsFramework. enable ( this ) ;
commands. create (helloCommand ). register ( ) ;
}
}
1. Install dependency
HTML:
<dependency>
<groupId>io.github.jwdeveloper.spigot.commands </groupId>
<artifactId>commands-framework-core </artifactId>
<version>1.0.1 </version>
</dependency>
Code (Java):
public
final
class Example
extends JavaPlugin
{
@Override
public void onEnable ( ) {
CommandsApi commandsApi = CommandsFramework. enable ( this ) ;
commands. create ( "/hello <name:Text> <age:number> <job:Text[Miner, Fisherman, Farmer]>" )
. onPlayerExecute (event ->
{
event. sender ( ). sendMessage ( "You called the hello command" ) ;
var name = event. getString ( "name" ) ;
var age = event. getNumber ( "age" ) ;
var job = event. getString ( "job" ) ;
event. sender ( ). sendMessage ( "Name: " + name + " Age: " + age + " Job: " + job ) ;
} ). register ( ) ;
}
}
@Override
public void onEnable ( ) {
CommandsApi commandsApi = CommandsFramework. enable ( this ) ;
commands. create ( "/hello <name:Text> <age:number> <job:Text[Miner, Fisherman, Farmer]>" )
. onPlayerExecute (event ->
{
event. sender ( ). sendMessage ( "You called the hello command" ) ;
var name = event. getString ( "name" ) ;
var age = event. getNumber ( "age" ) ;
var job = event. getString ( "job" ) ;
event. sender ( ). sendMessage ( "Name: " + name + " Age: " + age + " Job: " + job ) ;
} ). register ( ) ;
}
}
3. Use a command in the game
Contributing
Library documentation for contributors
Your improvements are welcome! Feel free to open an issue or pull request.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.19, 1.20, 1.20.6
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Commands Framework is a free Minecraft Java mod. Compatible with Minecraft 1.19, 1.20, 1.20.6, 1.21. Downloaded 208 times (via Spigot). Download it and open it directly in the game.