add permissions to commands

This commit is contained in:
dfsek
2021-12-19 22:43:12 -07:00
parent cfc7960c70
commit 30b02a03c4
@@ -45,6 +45,7 @@ public class InternalAddon implements BaseAddon {
CommandManager<CommandSender> manager = event.getCommandManager(); CommandManager<CommandSender> manager = event.getCommandManager();
manager.command( manager.command(
manager.commandBuilder("addons", ArgumentDescription.of("List installed Terra addons")) manager.commandBuilder("addons", ArgumentDescription.of("List installed Terra addons"))
.permission("terra.addons")
.handler(context -> { .handler(context -> {
StringBuilder addons = new StringBuilder("Installed addons:\n"); StringBuilder addons = new StringBuilder("Installed addons:\n");
platform.getAddons() platform.getAddons()
@@ -60,6 +61,7 @@ public class InternalAddon implements BaseAddon {
.command( .command(
manager.commandBuilder("addons") manager.commandBuilder("addons")
.argument(RegistryArgument.of("addon", platform.getAddons())) .argument(RegistryArgument.of("addon", platform.getAddons()))
.permission("terra.addons.info")
.handler(context -> { .handler(context -> {
BaseAddon addon = context.get("addon"); BaseAddon addon = context.get("addon");
StringBuilder addonInfo = new StringBuilder("Addon ").append(addon.getID()).append('\n'); StringBuilder addonInfo = new StringBuilder("Addon ").append(addon.getID()).append('\n');
@@ -76,75 +78,93 @@ public class InternalAddon implements BaseAddon {
context.getSender().sendMessage(addonInfo.toString()); context.getSender().sendMessage(addonInfo.toString());
}) })
) )
.command(manager.commandBuilder("packs", ArgumentDescription.of("List installed config packs")) .command(
.handler(context -> { manager.commandBuilder("packs", ArgumentDescription.of("List installed config packs"))
StringBuilder packs = new StringBuilder("Installed packs:\n"); .permission("terra.packs")
platform.getConfigRegistry().forEach(pack -> packs.append(" - ") .handler(context -> {
.append(pack.getID()) StringBuilder packs = new StringBuilder("Installed packs:\n");
.append('@') platform.getConfigRegistry().forEach(pack -> packs.append(" - ")
.append(pack.getVersion().getFormatted())); .append(pack.getID())
context.getSender().sendMessage(packs.toString()); .append('@')
}) .append(pack.getVersion().getFormatted()));
context.getSender().sendMessage(packs.toString());
})
) )
.command(manager.commandBuilder("packs") .command(
.literal("info", ArgumentDescription.of("Get information about a pack")) manager.commandBuilder("packs")
.argument(RegistryArgument.of("pack", platform.getConfigRegistry())) .literal("info", ArgumentDescription.of("Get information about a pack"))
.handler(context -> { .permission("terra.packs.info")
ConfigPack pack = context.get("pack"); .argument(RegistryArgument.of("pack", platform.getConfigRegistry()))
StringBuilder packInfo = new StringBuilder("Pack ").append(pack.getID()).append('\n'); .handler(context -> {
ConfigPack pack = context.get("pack");
StringBuilder packInfo = new StringBuilder("Pack ").append(pack.getID()).append('\n');
packInfo.append("Version: ").append(pack.getVersion().getFormatted()).append('\n'); packInfo.append("Version: ").append(pack.getVersion().getFormatted()).append('\n');
packInfo.append("Author: ").append(pack.getAuthor()).append('\n'); packInfo.append("Author: ").append(pack.getAuthor()).append('\n');
packInfo.append("Addon Dependencies:\n"); packInfo.append("Addon Dependencies:\n");
pack.addons().forEach((id, versions) -> packInfo pack.addons().forEach((id, versions) -> packInfo
.append(" - ") .append(" - ")
.append(id.getID()) .append(id.getID())
.append('@') .append('@')
.append(versions.getFormatted()) .append(versions.getFormatted())
.append('\n')); .append('\n'));
context.getSender().sendMessage(packInfo.toString()); context.getSender().sendMessage(packInfo.toString());
})) }))
.command(manager.commandBuilder("packs") .command(
.literal("reload", ArgumentDescription.of("Reload config packs")) manager.commandBuilder("packs")
.handler(context -> { .literal("reload", ArgumentDescription.of("Reload config packs"))
context.getSender().sendMessage("Reloading Terra..."); .permission("terra.packs.reload")
logger.info("Reloading Terra..."); .handler(context -> {
if(platform.reload()) { context.getSender().sendMessage("Reloading Terra...");
logger.info("Terra reloaded successfully."); logger.info("Reloading Terra...");
context.getSender().sendMessage("Terra reloaded successfully."); if(platform.reload()) {
} else { logger.info("Terra reloaded successfully.");
logger.error("Terra failed to reload."); context.getSender().sendMessage("Terra reloaded successfully.");
context.getSender().sendMessage("Terra failed to reload. See logs for more information."); } else {
} logger.error("Terra failed to reload.");
})) context.getSender().sendMessage(
.command(manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler")) "Terra failed to reload. See logs for more information.");
.literal("start", ArgumentDescription.of("Start profiling"), "st") }
.handler(context -> { }))
platform.getProfiler().start(); .command(
context.getSender().sendMessage("Profiling started."); manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler"))
})) .literal("start", ArgumentDescription.of("Start profiling"), "st")
.command(manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler")) .permission("terra.profiler.start")
.literal("stop", ArgumentDescription.of("Stop profiling"), "s") .handler(context -> {
.handler(context -> { platform.getProfiler().start();
platform.getProfiler().stop(); context.getSender().sendMessage("Profiling started.");
context.getSender().sendMessage("Profiling stopped."); }))
})) .command(
.command(manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler")) manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler"))
.literal("query", ArgumentDescription.of("Query profiler results"), "q") .literal("stop", ArgumentDescription.of("Stop profiling"), "s")
.handler(context -> { .permission("terra.profiler.stop")
StringBuilder data = new StringBuilder("Terra Profiler data: \n"); .handler(context -> {
platform.getProfiler().getTimings().forEach((id, timings) -> data.append(id).append(": ").append(timings.toString()).append('\n')); platform.getProfiler().stop();
logger.info(data.toString()); context.getSender().sendMessage("Profiling stopped.");
context.getSender().sendMessage("Profiling data dumped to console."); }))
})) .command(
.command(manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler")) manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler"))
.literal("reset", ArgumentDescription.of("Reset the profiler"), "r") .literal("query", ArgumentDescription.of("Query profiler results"), "q")
.handler(context -> { .permission("terra.profiler.query")
platform.getProfiler().reset(); .handler(context -> {
context.getSender().sendMessage("Profiler reset."); StringBuilder data = new StringBuilder("Terra Profiler data: \n");
})) platform.getProfiler().getTimings().forEach((id, timings) -> data.append(id)
; .append(": ")
.append(timings.toString())
.append('\n'));
logger.info(data.toString());
context.getSender().sendMessage("Profiling data dumped to console.");
}))
.command(
manager.commandBuilder("profiler", ArgumentDescription.of("Access the profiler"))
.literal("reset", ArgumentDescription.of("Reset the profiler"), "r")
.permission("terra.profiler.reset")
.handler(context -> {
platform.getProfiler().reset();
context.getSender().sendMessage("Profiler reset.");
}))
;
}); });