TheAPI icon

TheAPI -----

[Spigot, BungeeCord, Velocity] Complex API library to make plugin development easier & faster!



Faster loading of files, improved saving of YAML, added new Command API and more!
+ Added Command API
Code (Java):
//Inside onEnable method
CommandHolder. create (
        //empty command - no args
        CommandStructure. empty ( ). permission ( "mw.command" ). onAnyArg ( (sender, selectors ) -> {
            sender. sendMessage ( "/mw tp [world] {player}" ) ;
            sender. sendMessage ( "/mw list" ) ;
        } ),
        //tp subcommand
        CommandStructure. create ( "tp" ). permission ( "mw.tp" ). onArgs ( 0, (sender, selectors ) -> {
            sender. sendMessage ( "/mw tp [world] {player}" ) ; //argument position
        } ). selector ( 1, SelectorType. WORLD ). onArgs ( 1, (sender, selectors ) -> {
            sender. sendMessage ( "Tp to the world " +selectors. get ( 1 ) ) ; //argument position
        } ). permission ( "mw.tp.other" ). selector ( 2, SelectorType. PLAYER )
        . onArgsOrMore ( 2, (sender, selectors ) -> {
            sender. sendMessage ( "Tp player " +selectors. get ( 2 ) + " to the world " +selectors. get ( 1 ) ) ; //argument position
        } ),
       
        //list subcommand
        CommandStructure. create ( "list" ). permission ( "mw.list" ). onAnyArg ( (sender, selectors ) -> {
            sender. sendMessage ( "List of worlds" ) ;
        } ). requirement ( 1, "show" )
        . onArgsOrMore ( 1, (sender, selectors ) -> {
            sender. sendMessage ( "List of worlds (semi hidden)" ) ;
        } )
        . requirement ( 2, "hidden" ) // mw -> list -> show -> hidden:
        . onArgsOrMore ( 1, (sender, selectors ) -> {
            sender. sendMessage ( "List of worlds (ultra hidden)" ) ;
        } )

) //.permsChecker((sender, perm) -> { //permissions checker (no perms message?)
//    return sender.hasPermission(perm);
//}
). register ( this, "mw", "multiworld", "multiworlds" ) ; //register command with aliases
+ Improved performance of loading & saving YAML files (Whoosh!)
+ Improved performance of lookup for Data Loader
+ Added abillity to make your OWN DataLoader - With ordering of loaders!
Code (Java):
@Override //Inside your plugin's main class!
public void onLoad ( ) {
    DataLoader. register (LoaderPriority. LOWEST, ( ) -> { return new MySuperCoolLoader ( ) ; } ) ;
}

//This is external class!
public class MySuperCoolLoader extends EmptyLoader { //Or just extend DataHolder

    @Override
    public void load ( String input ) {
        reset ( ) ;
        if (input == null )
            return ;
        try {
            //Some loading from input string logic...
        } catch ( Exception er ) {
            reset ( ) ;
        }
    }
}
+ Fixed errors when trying connect to SQL after looong time inactive
----------, Mar 30, 2022
Resource Information
Author:
----------
Total Downloads: 31,339
First Release: Nov 11, 2019
Last Update: Jan 2, 2025
Category: ---------------
All-Time Rating:
8 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings