SP
Maven
<repository>
<id> xuan < / id>
<url> https://xuan.nctu.me:8081/repository/Maven/ < / url>
< / repository>
Usage
javadocs
Example (you can just copy and paste to test)
@Override
public void onEnable ( ) {
DSLBuilder builder = SpigotDSL. adapt ( this ) ;
builder. listenEvents ( listener -> {
listener. listen ( PlayerJoinEvent. class , e -> {
e. setJoinMessage ( "§6" + e. getPlayer ( ) . getDisplayName ( ) + "joined the server !!" ) ;
} ) ;
listener. event ( PlayerQuitEvent. class ) . listen ( e -> {
e. setQuitMessage ( "§c" + e. getPlayer ( ) . getDisplayName ( ) + "left the server....." ) ;
} ) ;
} ) ;
FileConfiguration config = builder. createFile ( yml -> {
yml. prefix ( "prefix" ) . folder ( "My Custom Folder" ) . create ( "config.yml" ) ;
} ) . get ( "config.yml" ) ;
ConsoleCommandSender sender = getServer ( ) . getConsoleSender ( ) ;
sender. sendMessage ( config. getString ( "msg-1" ) ) ;
sender. sendMessage ( config. getString ( "msg-2" ) ) ;
sender. sendMessage ( config. getString ( "msg-3" ) ) ;
config. getStringList ( "list-1" ) . forEach ( sender :: sendMessage ) ;
config. getStringList ( "list-2" ) . forEach ( sender :: sendMessage ) ;
MessageConfiguration msg = ( MessageConfiguration ) config ;
sender. sendMessage ( msg. getPrefix ( ) ) ;
sender. sendMessage ( msg. getPureString ( "msg-1" ) ) ;
msg. getPureList ( "list-1" ) . forEach ( sender :: sendMessage ) ;
builder. createCommands ( cmd -> {
cmd. command ( "test" ) . description ( "test command" ) . child ( test -> {
test. command ( "ping" ) . description ( "ping command" ) . permission ( "ping.use" ) . child ( ping -> {
long playerPing = 999999 ;
long serverPing = 0 ;
ping. command ( "player" ) . description ( "ping player" ) . executor ( ( commandSender, list ) -> {
commandSender. sendMessage ( "player ping is " + playerPing + "ms" ) ;
} ) ;
ping. command ( "server" ) . description ( "ping server" ) . executor ( ( commandSender, list ) -> {
commandSender. sendMessage ( "server ping is " + serverPing + "ms" ) ;
} ) ;
} ) ;
test. command ( "hi" ) . description ( "say hi command" ) . child ( hi -> {
hi. command ( "players" ) . description ( "say hi to all players" ) . executor ( ( commandSender, list ) -> {
commandSender. sendMessage ( "you said hi to all players!!" ) ;
} ) ;
hi. command ( "console" ) . description ( "say hi to console" ) . executor ( ( commandSender, list ) -> {
commandSender. sendMessage ( "oh hi! I am console!!" ) ;
} ) ;
} ) ;
// random register command
if ( new Random ( ) . nextBoolean ( ) ) {
test. command ( "random" ) . description ( "this command has 50% chance to be registered" ) . executor ( ( commandSender, list ) -> {
commandSender. sendMessage ( "this command exist!!" ) ;
} ) ;
}
test. command ( "say" ) . description ( "say command" ) . args ( "<player>" , "[messages]" ) . executor ( ( commandSender, list ) -> {
String player = list. get ( 0 ) ;
String messages = String . join ( " " , list. subList ( 1 , list. size ( ) ) ) ;
commandSender. sendMessage ( "you say " + ( messages. isBlank ( ) ? "nothing" : messages ) + " to player " + player ) ;
} ) ;
} ) ;
} ) ;
}
Showcase from example (simple as ****)



If you need more details(or more features?), just contact me
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta