FEMultiPlayer-V2
FEMultiPlayer-V2 copied to clipboard
Server crash when smiting/shoving
Issue type: problem
Description:
I've experienced this while testing the fix for the give/take commands. I haven't been able to reproduce it. I figure people should be aware that there's potentially a bug in the smite validation.
Expected Behavior:
Smite
Actual Behavior:
Server crash
Steps to Reproduce:
I don't know. IIRC, I was smiting a mage with an armored unit rescuing another unit (I didn't think of taking a screenshot/noting down the units when it happened). The smiter was next to the right boundary of the map if that helps, smiting an ally towards the left. There were no units in the way.
Examples:
I suppose I have the server log, but that's all I have.
java.lang.IllegalStateException: SMITE: Shover is not allowed to shove shovee
at net.fe.network.command.SmiteCommand.applyServer(SmiteCommand.java:31)
at net.fe.overworldStage.OverworldStage.processCommands(OverworldStage.java:366)
at net.fe.overworldStage.OverworldStage.executeMessage(OverworldStage.java:266)
at net.fe.overworldStage.OverworldStage.beginStep(OverworldStage.java:259)
at net.fe.network.FEServer.loop(FEServer.java:116)
at net.fe.network.serverui.FEServerFrame.lambda$0(FEServerFrame.java:57)
at java.lang.Thread.run(Thread.java:745)
I got this in 10d0ca2d989d1a1c05ae15c9e639282c12502827 .
In this match, Blue was the only side that had weapons, so red was milling with assorted shove and rescue actions. I did not pay attention to who rescued whom, although I think it was mostly Horsemen rescuing infantry. I don't think anyone was rescued on this turn. In this turn, only Mia and Joshua remained: Mia (northern red swordmaster) shoved an enemy Pegasus, then Joshua (southern red swordmaster) shoved Mia. Joshua shoving Mia was when the crash occurred. However, I have not been able to reproduce this.
java.lang.IllegalStateException: SHOVE: Shover is not allowed to shove shovee
at net.fe.network.command.ShoveCommand.applyServer(ShoveCommand.java:31)
at net.fe.overworldStage.OverworldStage.processCommands(OverworldStage.java:366)
at net.fe.overworldStage.OverworldStage.executeMessage(OverworldStage.java:266)
at net.fe.overworldStage.OverworldStage.beginStep(OverworldStage.java:259)
at net.fe.network.FEServer.loop(FEServer.java:116)
at net.fe.network.serverui.FEServerFrame.lambda$serverStart$0(FEServerFrame.java:57)
at java.base/java.lang.Thread.run(Unknown Source)