commands
commands copied to clipboard
Parsing double null pointer with @Default
When the signature of the command is as follows:
@Default
public void test(Player sender, String string, @Default("1") int integer) {
and then run /command it won't error. This changes as soon as you change the order of the arguments to:
@Default
public void test(Player sender, @Default("1") int integer, String string) {
it will error upon /command with:
[18:45:17 INFO]: whats_this[/0:0:0:0:0:0:0:1:58540] logged in with entity id 127 at ([world]39.6617281820209, 94.0, 120.08754182863834)
[18:45:27 INFO]: whats_this issued server command: /test
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] Exception in command: test
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] java.lang.NullPointerException
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at java.lang.Double.parseDouble(Unknown Source)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.ACFUtil.parseNumber(ACFUtil.java:444)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.CommandContexts.parseAndValidateNumber(CommandContexts.java:256)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.CommandContexts.lambda$new$4(CommandContexts.java:72)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.RegisteredCommand.resolveContexts(RegisteredCommand.java:262)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.RegisteredCommand.resolveContexts(RegisteredCommand.java:197)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.RegisteredCommand.invoke(RegisteredCommand.java:146)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.BaseCommand.executeCommand(BaseCommand.java:663)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.BaseCommand.findAndExecuteCommand(BaseCommand.java:837)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.BaseCommand.execute(BaseCommand.java:525)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.RootCommand.execute(RootCommand.java:107)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at com.proximyst.redeemmcmmo.dependencies.co.aikar.commands.BukkitRootCommand.execute(BukkitRootCommand.java:62)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at org.bukkit.craftbukkit.v1_13_R2.CraftServer.dispatchCommand(CraftServer.java:734)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.PlayerConnection.handleCommand(PlayerConnection.java:1797)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1605)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:45)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:5)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:15)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at java.util.concurrent.FutureTask.run(Unknown Source)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.SystemUtils.a(SystemUtils.java:108)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1011)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:938)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:836)
[18:45:27 ERROR]: [mcMMO-Redeem] [ACF] at java.lang.Thread.run(Unknown Source)
This is with acf-paper 0.5.0-SNAPSHOT.
This is an illegal method format. there can not be a required parameter following Optional parameters.
I'll need to see about improving validation to detect this, though it is curious why its even triggering that error though