This is the error I get:
[23:21:03] [Server thread/ERROR] [Sponge]: Error occurred while executing command ‘getuser Lmmb74’ for source DedicatedServer: plugin
java.lang.NullPointerException: plugin
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:229) ~[minecraft_server.1.10.2.jar:?]
at org.spongepowered.common.scheduler.SpongeScheduler.checkPluginInstance(SpongeScheduler.java:158) ~[SpongeScheduler.class:1.10.2-2171-5.1.0-BETA-1992]
at org.spongepowered.common.scheduler.SpongeTaskBuilder.submit(SpongeTaskBuilder.java:104) ~[SpongeTaskBuilder.class:1.10.2-2171-5.1.0-BETA-1992]
at com.namelessmc.namelessplugin.sponge.commands.GetUserCommand.execute(GetUserCommand.java:148) ~[GetUserCommand.class:?]
at org.spongepowered.api.command.spec.CommandSpec.process(CommandSpec.java:351) ~[CommandSpec.class:1.10.2-2171-5.1.0-BETA-1992]
at org.spongepowered.api.command.dispatcher.SimpleDispatcher.process(SimpleDispatcher.java:333) ~[SimpleDispatcher.class:1.10.2-2171-5.1.0-BETA-1992]
at org.spongepowered.common.command.SpongeCommandManager.process(SpongeCommandManager.java:291) [SpongeCommandManager.class:1.10.2-2171-5.1.0-BETA-1992]
at net.minecraft.command.ServerCommandManager.func_71556_a(SourceFile:83) [bd.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71333_ah(DedicatedServer.java:423) [ld.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:388) [ld.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
I try to use runnables in the commands but this is what I get. The source code is here:
No, because statics are bad. Technically it’d work, but I would always recommend a constructor (or even injector) pattern instead of a statics pattern.’
i.e.
public GetUserCommand(NamelessPlugin plugin) {
this.plugin = plugin;
}
Actually, what I would do myself (if I ever bothered with creating multiple classes ) is @Inject the Injector, and then use getInstance to construct the class. Then I can just @Inject my main plugin class in the command executor class or what-have-you.