Were you always like why I have to code a lot of repeatable things?
No more, I represent to you LupusCommandFramework!
Framework that will care about developers and will be powered by developers.
Here have a look:
class CommandFramework : JavaPlugin() {
override fun onEnable() {
val yourPathToCommands = "org.lupus.commands"
Scanner(this).scan(yourPathToCommands)
}
}
All you have to do to start coding commands.
The yourPathToCommands you just write down the package name of your command package folder.
Now for the command class:
package org.lupus.commands
import org.bukkit.entity.Player
class AdminCMD {
fun test(executor: Player): String {
return "Hello world"
}
}
That will create command /admin test
Yes, that's all you need to do, just write code.
The command above will just print out to player executor "hello world".
Want command sender just change it out no problem.
No more plugin.yml, no more annotations.
Did I forget to add permission tree automatically generate for you?
Tree generates with syntax represented below:
For example you have command in org.lupus.commands.admin.badcmds.KickCMD
all of your commands sit in package org.lupus.commands
your command package prefix will be then pluginName.admin.badcmds.
Its just superior command name lets start with the same example i gave in the previous line so we ended up with pluginName.admin.badcmds.
now you just add class name for this example we used KickCMD so it's pluginName.admin.badcmds.kick
It's usually your method name nothing big
You can donate any amount you want if you don't want it's okay I will still maintain this code base!
There's a lot to do I want to do here's a list of work I want to be done
- Working I18n implementation for plugins to use
- Expand the documentation
- Command Life cycle events
- Python script to show permission nodes for your code with tree graph or something
- Test some edge cases
- Add support for various platforms like Velocity
- Test official Java Support Repository showing java support