Here is a framework of bungee/bukkit Spigot and standard application.
Using this framework. You can:
- Building commands with link calling.
- Loading/Saving your configuration anywhere.
- Template support!
- Regex Replacer. in
RegexUtils
First, add our repository (https://raw.githubusercontent.com/Karlatemp/karlatemp-repo/master/) into your repositories
Gradle:
repositories {
maven {
url = 'https://raw.githubusercontent.com/Karlatemp/karlatemp-repo/master/'
name = 'Karlatemp Repo'
}
}
Now, you can use our framework now!
dependencies {
compile 'io.github.karlatemp.kar-framework:kar-framework:1.4.3'
}
Latest version: 1.4.3
You can create command node with link calling.
First. You need a command-framework.
class TestFramework
// extends AbstractCommandFramework<PrintStream>
implements ICommandFramework<PrintStream> {}
You can found example here
Then, we can register our commands now.
class TestFramework implements ICommandFramework<PrintStream> {
public static void register() {
ICommandFramework<PrintStream> framework = new TestFramework();
final ICommandNode<PrintStream> command = new CommandTree<>(framework)
.registerSubCommand(framework.newSingleCommand()
.setName("test")
.setDescription("Description")
.setExecutor((sender, arguments, sourceArguments) -> {
sender.println("Hello!");
sender.println(arguments);
sender.println(sourceArguments);
})
.build())
.registerSubCommand(framework.newSingleCommand()
.setName("text")
.setDescription("D2")
.setExecutor((sender, arguments, sourceArguments) -> {
sender.println("TEXT HERE");
})
.build());
command.execute(System.out, Arrays.asList("test"));
}
}
In bukkit Spigot/bungee. We have standard frameworks. You can get they with
KarFrameworkBukkit.getInstance()/KarFrameworkBungee.getInstance()
.
Here is an example.
public class CommandRegister {
public static void register() {
KarFrameworkBukkit framework = KarFrameworkBukkit.getInstance();
final ICommandNode<CommandSender> command = new CommandTree<>(framework)
.registerSubCommand(framework.newSingleCommand()
.setName("test")
.setDescription("Description")
.setExecutor((sender, arguments, sourceArguments) -> {
sender.sendMessage("Hello!");
})
.build())
.registerSubCommand(framework.newSingleCommand()
.setName("text")
.setDescription("D2")
.setExecutor((sender, arguments, sourceArguments) -> {
sender.sendMessage("TEXT HERE");
})
.build());
framework.provide(MyPlugin.getInstance()).provideCommand("my-command", command);
}
}
We have integrated 3 configurations format support(HOCON, JSON, YAML),
Powered by SpongePowered/Configurate
You can use them in bukkit Spigot/bungee, or other applications.
Just need implements your own IPluginProvider
Here is an example on Bukkit Spigot
public class MyPlugin extends JavaPlugin {
private static IPluginProvider provider;
private ConfigurationNode config;
public void onLoad() {
provider = KarFrameworkBukkit.getInstance().provide(this);
}
public void reloadConfig() {
ConfigurationLoader<? extends ConfigurationNode> loader = provider.loadConfiguration("config.conf");
assert loader != null;
config = provider.loadConfiguration(loader);
}
public org.bukkit.configuration.file.FileConfiguration getConfig() {
return new YamlConfiguration();
}
}
On bukkit Spigot, We provided NBT Framework.
You can use our framework to access nbt
without having to visit nms by yourself.
First. You need get our nbt framework with
IBukkitNbtProvider provider = KarFrameworkBukkit.getNbtProvider();
.
Access nbt will be very easy.
public class TestNBT { public static void test() {
ITagCompound item = provider.newCompound();
item.setString("id", "minecraft:stone");
ItemStack itemStack = provider.fromCompound(item);
} }
On bukkit Spigot, We provided
void sendPacket(Player, Object packet)
void sendTitle(Player, BaseComponent, BaseComponent, int, int, int)
void sendAction(Player, BaseComponent)
(sendActionBar)CommandMap getCommandMap()
Function<@NotNull String, @Nullable String> getSystemLocale()
Object getHandle(Entity)
BaseComponent[] toComponents(ItemStack)
BaseComponent[] getItemName(ItemStack)
in KarFrameworkBukkit.getNmsProvider()
.