Revxrsal / Lamp

A modern annotations-driven commands framework for Java and Kotlin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Issue with AutoCompleter

raffel080108 opened this issue · comments

I'm having an issue with the AutoCompleter but I am unable to determine what exactly is going wrong from the Stacktrace

[23:24:17 ERROR]: Exception when raffel080108 attempted to tab complete spawnbossentities:spawnbossentity 
org.bukkit.command.CommandException: Unhandled exception during tab completion for command '/spawnbossentities:spawnbossentity ' in plugin SpawnBossEntities v1.0
	at org.bukkit.command.PluginCommand.tabComplete(PluginCommand.java:150) ~[purpur-api-1.19.3-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.command.Command.tabComplete(Command.java:93) ~[purpur-api-1.19.3-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:253) ~[purpur-api-1.19.3-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.craftbukkit.v1_19_R2.CraftServer.tabCompleteCommand(CraftServer.java:2379) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at org.bukkit.craftbukkit.v1_19_R2.CraftServer.tabComplete(CraftServer.java:2351) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at org.bukkit.craftbukkit.v1_19_R2.command.BukkitCommandWrapper.getSuggestions(BukkitCommandWrapper.java:74) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at com.mojang.brigadier.tree.ArgumentCommandNode.listSuggestions(ArgumentCommandNode.java:71) ~[brigadier-1.0.18.jar:git-Purpur-1905]
	at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:601) ~[purpur-1.19.3.jar:?]
	at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:581) ~[purpur-1.19.3.jar:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleCustomCommandSuggestions$5(ServerGamePacketListenerImpl.java:939) ~[?:?]
	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1368) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1345) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1338) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1316) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1204) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:321) ~[purpur-1.19.3.jar:git-Purpur-1905]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method 'void revxrsal.commands.bukkit.core.BukkitActor.<init>(org.bukkit.command.CommandSender, revxrsal.commands.CommandHandler)' the class loader 'spawnbossentities-1.0.jar' @497a00ff of the current class, revxrsal/commands/bukkit/core/BukkitCommandExecutor, and the class loader 'customachievementgui-1.0.jar' @7f7069cd for the method's defining class, revxrsal/commands/bukkit/core/BukkitActor, have different Class objects for the type revxrsal/commands/CommandHandler used in the signature (revxrsal.commands.bukkit.core.BukkitCommandExecutor is in unnamed module of loader 'spawnbossentities-1.0.jar' @497a00ff, parent loader java.net.URLClassLoader @484b61fc; revxrsal.commands.bukkit.core.BukkitActor is in unnamed module of loader 'customachievementgui-1.0.jar' @7f7069cd, parent loader java.net.URLClassLoader @484b61fc)
	at revxrsal.commands.bukkit.core.BukkitCommandExecutor.onTabComplete(BukkitCommandExecutor.java:44) ~[spawnbossentities-1.0.jar:?]
	at org.bukkit.command.PluginCommand.tabComplete(PluginCommand.java:138) ~[purpur-api-1.19.3-R0.1-SNAPSHOT.jar:?]
	... 22 more

This is how I am initializing the autocompleter for this case (In the main class in #onEnable()):

        BukkitCommandHandler commandHandler = BukkitCommandHandler.create(this);
        ConfigurationSection entities = getConfig().getConfigurationSection("entities");
        if (entities != null)
            commandHandler.getAutoCompleter().registerSuggestion("entityName", SuggestionProvider.of(entities.getKeys(false)));
        else log.severe("Could not find configuration-section \"entities\". Please check your configuration");

        entityHandler = new EntityHandler(this);

        commandHandler.register(new ReloadCommand(this));
        commandHandler.register(entityHandler);
        commandHandler.registerBrigadier();

And this is the starting part of my command's method:

@Command("spawnBossEntity")
@CommandPermission("spawnBossEntities.spawnBossEntity")
@AutoComplete("@entityName ~ ~ ~")
private void spawnEntityCommand(Player sender, @Named("entityName") String entityName,
                                    @Named("locationX") @Optional(def = "~") String locationX,
                                    @Named("locationY") @Optional(def = "~") String locationY,
                                    @Named("locationZ") @Optional(def = "~") String locationZ) {

Could you please explain me what exactly is going wrong here and how I would be able to fix it?
Thanks in advance :)

Nevermind, apperently there was an issue due to reloading. Works fine now