From bdb486188ea58766d89aab99ccc7d301f9bc48c4 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 6 Sep 2021 13:50:43 -0700 Subject: [PATCH] bukkit commandregistrationevent --- common/api/build.gradle.kts | 2 +- platforms/bukkit/build.gradle.kts | 2 + .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 45 ++++++++++--------- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/common/api/build.gradle.kts b/common/api/build.gradle.kts index 12656d868..21b944799 100644 --- a/common/api/build.gradle.kts +++ b/common/api/build.gradle.kts @@ -5,6 +5,6 @@ dependencies { "shadedApi"("net.jafama:jafama:2.3.2") - implementation("cloud.commandframework", "cloud-core", "1.5.0") + "compileOnly"("cloud.commandframework", "cloud-core", "1.5.0") } diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index 25fcb1739..882ecb3a4 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -25,6 +25,8 @@ dependencies { "compileOnly"("com.sk89q.worldedit:worldedit-bukkit:7.2.0-SNAPSHOT") "shadedApi"("com.google.guava:guava:30.0-jre") + + "shadedApi"("cloud.commandframework", "cloud-bukkit", "1.5.0") } val jvmFlags = listOf( diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index 8c51a4a15..cb6463e68 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -1,5 +1,12 @@ package com.dfsek.terra.bukkit; +import cloud.commandframework.bukkit.BukkitCommandManager; +import cloud.commandframework.execution.CommandExecutionCoordinator; + +import com.dfsek.terra.api.entity.CommandSender; +import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; +import com.dfsek.terra.bukkit.world.BukkitAdapter; + import io.papermc.lib.PaperLib; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; @@ -43,9 +50,25 @@ public class TerraBukkitPlugin extends JavaPlugin { } private final TerraPluginImpl terraPlugin = new TerraPluginImpl(this); + + private final cloud.commandframework.CommandManager commandManager; + private final Map generatorMap = new HashMap<>(); private final Map worlds = new HashMap<>(); + public TerraBukkitPlugin() { + try { + commandManager = new BukkitCommandManager<>( + this, + CommandExecutionCoordinator.simpleCoordinator(), + BukkitAdapter::adapt, + BukkitAdapter::adapt + ); + } catch(Exception e) { + throw new RuntimeException(e); + } + } + @Override public void onDisable() { BukkitChunkGeneratorWrapper.saveAll(); @@ -62,27 +85,7 @@ public class TerraBukkitPlugin extends JavaPlugin { new Metrics(this, 9017); // Set up bStats. - PluginCommand c = Objects.requireNonNull(getCommand("terra")); - - CommandManager manager = new TerraCommandManager(terraPlugin); - - - try { - CommandUtil.registerAll(manager); - manager.register("save-data", SaveDataCommand.class); - manager.register("fix-chunk", FixChunkCommand.class); - } catch(MalformedCommandException e) { // This should never happen. - terraPlugin.logger().severe("Errors occurred while registering commands."); - e.printStackTrace(); - terraPlugin.logger().severe("Please report this to Terra."); - Bukkit.getPluginManager().disablePlugin(this); - return; - } - - BukkitCommandAdapter command = new BukkitCommandAdapter(manager); - - c.setExecutor(command); - c.setTabCompleter(command); + terraPlugin.getEventManager().callEvent(new CommandRegistrationEvent(commandManager)); // Register commands long save = terraPlugin.getTerraConfig().getDataSaveInterval();