I don’t believe this problem originates with the interaction between Sponge and Aroma1997 Core, but from an interaction between Aroma1997 and FTBUtilities “override_commands” option, located in the “local/ftbu/config.json” file.
Starting with a fresh version of the server files for FTB Beyond version 1.2.1, as found here, I’ve been able to reproduce part of the issue described above
Which we saw, as noted by Inscrutable, to be related to “aroma1997.core.command”.
When using the base install of FTB Beyond 1.2.1 and running the “help” command from console, I receive the following output:
FTB Only Error
> help
[09:13:42] [Server thread/INFO]: --- Showing help page 1 of 20 (/help <page>) ---
[09:13:42] [Server thread/INFO]: /achievement <give|take> <name|*> [player]
[09:13:42] [Server thread/INFO]: Commands provided by Applied Energistics 2 - use /ae2 list for a list, and /ae2 help _____ for help with a command.
[09:13:42] [Server thread/INFO]: An unknown error occurred while attempting to perform this command
[09:13:42] [Server thread/WARN]: Couldn't process command: 'help'
java.lang.ClassCastException: com.feed_the_beast.ftbu.ranks.CmdOverride cannot be cast to net.minecraft.command.server.CommandScoreboard
at aroma1997.core.command.AromaCommand$SetupDeathCounter.getCommandScoreboard(AromaCommand.java:62) ~[AromaCommand$SetupDeathCounter.class:?]
at aroma1997.core.command.AromaCommand$SetupDeathCounter.func_184882_a(AromaCommand.java:129) ~[AromaCommand$SetupDeathCounter.class:?]
at aroma1997.core.command.AromaSubCommand.func_71518_a(AromaSubCommand.java:120) ~[AromaSubCommand.class:?]
at com.feed_the_beast.ftbu.ranks.CmdOverride.func_71518_a(CmdOverride.java:35) ~[CmdOverride.class:?]
at net.minecraft.command.CommandHelp.func_184881_a(SourceFile:104) ~[al.class:?]
at com.feed_the_beast.ftbu.ranks.CmdOverride.func_184881_a(CmdOverride.java:47) ~[CmdOverride.class:?]
at net.minecraft.command.CommandHandler.func_175786_a(CommandHandler.java:104) [k.class:?]
at net.minecraft.command.CommandHandler.func_71556_a(CommandHandler.java:83) [k.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(Thread.java:745) [?:1.8.0_121]
>
This error is only reported for the first help page, any other help page, e.g. “help 2”, has no error.
Successful "help 2"
help 2
[09:30:21] [Server thread/INFO]: — Showing help page 2 of 20 (/help ) —
[09:30:21] [Server thread/INFO]: backup
[09:30:21] [Server thread/INFO]: /ban [reason …]
[09:30:21] [Server thread/INFO]: /ban-ip <address|name> [reason …]
[09:30:21] [Server thread/INFO]: /banlist [ips|players]
[09:30:21] [Server thread/INFO]: /bcore_ticktime
[09:30:21] [Server thread/INFO]: /blockdata
[09:30:21] [Server thread/INFO]: bloodmagic
Also note that this does differ from the output received from a server with both FTB Beyond version 1.2.1 (which uses FTBserver-1.10.2-12.18.3.2254-universal.jar) and SpongeForge (version spongeforge-1.10.2-2254-5.2.0-BETA-2234.jar, no additional plugins), as seen here:
FTB and SpongeForge Error
> help
[09:23:12] [Server thread/INFO]: Error occurred while executing command: com.feed_the_beast.ftbu.ranks.CmdOverride cannot be cast to net.minecraft.command.server.CommandScoreboard
[09:23:12] [Server thread/ERROR] [Sponge]: Error occurred while executing command 'help' for source DedicatedServer: com.feed_the_beast.ftbu.ranks.CmdOverride cannot be cast to net.minecraft.command.server.CommandScoreboard
java.lang.ClassCastException: com.feed_the_beast.ftbu.ranks.CmdOverride cannot be cast to net.minecraft.command.server.CommandScoreboard
at aroma1997.core.command.AromaCommand$SetupDeathCounter.getCommandScoreboard(AromaCommand.java:62) ~[AromaCommand$SetupDeathCounter.class:?]
at aroma1997.core.command.AromaCommand$SetupDeathCounter.func_184882_a(AromaCommand.java:129) ~[AromaCommand$SetupDeathCounter.class:?]
at aroma1997.core.command.AromaSubCommand.func_71518_a(AromaSubCommand.java:120) ~[AromaSubCommand.class:?]
at com.feed_the_beast.ftbu.ranks.CmdOverride.func_71518_a(CmdOverride.java:35) ~[CmdOverride.class:?]
at org.spongepowered.common.command.MinecraftCommandWrapper.getHelp(MinecraftCommandWrapper.java:181) ~[MinecraftCommandWrapper.class:1.10.2-2254-5.2.0-BETA-2234]
at org.spongepowered.common.command.MinecraftCommandWrapper.getShortDescription(MinecraftCommandWrapper.java:176) ~[MinecraftCommandWrapper.class:1.10.2-2254-5.2.0-BETA-2234]
at org.spongepowered.common.command.SpongeHelpCommand.getDescription(SpongeHelpCommand.java:93) ~[SpongeHelpCommand.class:1.10.2-2254-5.2.0-BETA-2234]
at org.spongepowered.common.command.SpongeHelpCommand.lambda$null$2(SpongeHelpCommand.java:85) ~[SpongeHelpCommand.class:1.10.2-2254-5.2.0-BETA-2234]
at com.google.common.collect.Iterators$8.transform(Iterators.java:794) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[minecraft_server.1.10.2.jar:?]
at java.util.AbstractCollection.toArray(AbstractCollection.java:141) ~[?:1.8.0_121]
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:258) ~[minecraft_server.1.10.2.jar:?]
at org.spongepowered.common.command.SpongeHelpCommand.lambda$create$3(SpongeHelpCommand.java:85) ~[SpongeHelpCommand.class:1.10.2-2254-5.2.0-BETA-2234]
at org.spongepowered.api.command.spec.CommandSpec.process(CommandSpec.java:359) ~[CommandSpec.class:1.10.2-2254-5.2.0-BETA-2234]
at org.spongepowered.api.command.dispatcher.SimpleDispatcher.process(SimpleDispatcher.java:336) ~[SimpleDispatcher.class:1.10.2-2254-5.2.0-BETA-2234]
at org.spongepowered.common.command.SpongeCommandManager.process(SpongeCommandManager.java:295) [SpongeCommandManager.class:1.10.2-2254-5.2.0-BETA-2234]
at net.minecraft.command.ServerCommandManager.func_71556_a(SourceFile:1083) [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(Thread.java:745) [?:1.8.0_121]
>
Attempting to run “help 2” informs me that there is no command “2”. I was expecting this to attempt to show me the 2nd page for the “help” command, but I am new to Sponge and may just be ignorant of how the over-ridden “help” command works.
Setting the FTBUtilities config’s “override_commands” option from “true” to “false” and testing with both SpongeForge and FTB Beyond, there is no error:
FTB Beyond and SpongeForge with FTBUtilities' "override_commands" set to "false"
> help
[09:46:20] [Server thread/INFO]: ================= Available commands: ==================
[09:46:20] [Server thread/INFO]: /EnderStorage /EnderStorage help
[09:46:20] [Server thread/INFO]: /achievement /achievement <give|take> <name|*> [player]
[09:46:20] [Server thread/INFO]: /admin_home command.ftb.admin_home.usage
[09:46:20] [Server thread/INFO]: /ae2 Commands provided by Applied Energistics 2 - use /ae2 list for a list, and /ae2 help _____ for help with a command.
[09:46:20] [Server thread/INFO]: /aroma1997 /aroma1997 OR /aroma1997 reloadclient OR /aroma1997 setupDeathCounter OR /aroma1997 setupDeathCounter <location> OR /aroma1997 setupDeathCounter <location> <name>
[09:46:20] [Server thread/INFO]: /back /back
[09:46:20] [Server thread/INFO]: /backup command.ftb.backup.usage
[09:46:20] [Server thread/INFO]: /ban /ban <name> [reason ...]
[09:46:20] [Server thread/INFO]: /ban-ip /ban-ip <address|name> [reason ...]
[09:46:20] [Server thread/INFO]: /banlist /banlist [ips|players]
[09:46:20] [Server thread/INFO]: /baubles /baubles <action> [<player> [<params>]]
[09:46:20] [Server thread/INFO]: /bcore_ticktime /bcore_ticktime
[09:46:20] [Server thread/INFO]: /blockdata /blockdata <x> <y> <z> <dataTag>
[09:46:20] [Server thread/INFO]: /bloodmagic /bloodmagic help
[09:46:20] [Server thread/INFO]: /botania-download-latest /botania-download-latest <version>
[09:46:20] [Server thread/INFO]: ====================== « 1/10 » ======================
>
[details=FTB Beyond Only with FTBUtilities’ “override_commands” set to “false”]> help
[09:52:35] [Server thread/INFO]: — Showing help page 1 of 20 (/help ) —
[09:52:35] [Server thread/INFO]: /EnderStorage help
[09:52:35] [Server thread/INFO]: /achievement <give|take> <name|*> [player]
[09:52:35] [Server thread/INFO]: command.ftb.admin_home.usage
[09:52:35] [Server thread/INFO]: Commands provided by Applied Energistics 2 - use /ae2 list for a list, and /ae2 help _____ for help with a command.
[09:52:35] [Server thread/INFO]: /aroma1997 OR /aroma1997 reloadclient OR /aroma1997 setupDeathCounter OR /aroma1997 setupDeathCounter OR /aroma1997 setupDeathCounter
[09:52:35] [Server thread/INFO]: /back
[09:52:35] [Server thread/INFO]: command.ftb.backup.usage
[/details]
I’ve created a bug report for Aroma1997.
Hopefully this provides people with a solution and prevents our volunteer sponge devs from a wild goose chase.
~Twisted