mcspring-boot icon indicating copy to clipboard operation
mcspring-boot copied to clipboard

Autocompletion not working

Open CC007 opened this issue 4 years ago • 2 comments

I have a @Command annotated class in which I specify 2 classes as subcommand (both are annotated with @Command and @Subcommand).

Your wiki specifies the following:

The Spigot Spring Boot Starter comes with a out of the box autocompletion system, which provides a powerful and extensible support for the Minecraft command autocompletion feature. By default, all subcommands are suggested, as well as Player, World and enum parameters.

But for me it only suggests the player name.

I also tried explicitly specifying a @Parameter annotated field and give it a completionCandidate explicitly, but this doesn't seem to fix the issue.

Do you have time to help figure out the issue?

CC007 avatar Apr 12 '20 20:04 CC007

Bukkit already suggests all player's names by default, probably there's something wrong with the native command registration (https://github.com/Alan-Gomes/mcspring-boot/issues/22#issuecomment-654486194) (which controls the autocompletion too). Let's keep track of this issue with the newest updates.

Alan-Gomes avatar Jul 06 '20 22:07 Alan-Gomes

I indeed get an exception with the native command registration:

[01:21:55] [Server thread/WARN]: Failed to register commands natively, falling back to event listeners
java.lang.UnsupportedOperationException: null
        at java.util.AbstractList.remove(AbstractList.java:161) ~[?:1.8.0_232]
        at java.util.AbstractList$Itr.remove(AbstractList.java:374) ~[?:1.8.0_232]
        at org.bukkit.command.SimpleCommandMap.register(SimpleCommandMap.java:77) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at org.bukkit.command.SimpleCommandMap.register(SimpleCommandMap.java:62) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at dev.alangomes.springspigot.command.CommandService.registerCommand(CommandService.java:98) ~[HeadsPluginAPI-2.0.6.jar:?]
        at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_232]
        at dev.alangomes.springspigot.command.CommandService.init(CommandService.java:74) ~[HeadsPluginAPI-2.0.6.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_232]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_232]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232]
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:895) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[HeadsPluginAPI-2.0.6.jar:?]
        at com.github.cc007.headsplugin.HeadsPlugin.onEnable(HeadsPlugin.java:88) ~[HeadsPluginAPI-2.0.6.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at org.bukkit.craftbukkit.v1_16_R1.CraftServer.enablePlugin(CraftServer.java:493) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at org.bukkit.craftbukkit.v1_16_R1.CraftServer.enablePlugins(CraftServer.java:407) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at net.minecraft.server.v1_16_R1.MinecraftServer.loadWorld(MinecraftServer.java:438) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at net.minecraft.server.v1_16_R1.DedicatedServer.init(DedicatedServer.java:219) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:810) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot.jar:git-Spigot-0509002-6b95d59]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]

CC007 avatar Jul 21 '20 23:07 CC007