doriyan13 / SpringStory

v95 shroom simulator implemented via SpringBoot and java 21
MIT License
28 stars 26 forks source link

Crashing in MigrateIn #57

Closed doriyan13 closed 6 months ago

doriyan13 commented 6 months ago

i modified the parsing for equips Options and it cause an empty list instead of 3 entries list which is wrong and cause bad encoding exception..

java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302) at java.base/java.util.Objects.checkIndex(Objects.java:385) at java.base/java.util.ArrayList.get(ArrayList.java:427) at com.dori.SpringStory.inventory.Equip.encode(Equip.java:197) at com.dori.SpringStory.inventory.Inventory.encodeEquips(Inventory.java:62) at com.dori.SpringStory.client.character.MapleChar.encodeEquipments(MapleChar.java:399) at com.dori.SpringStory.client.character.MapleChar.encodeInfo(MapleChar.java:442) at com.dori.SpringStory.connection.packet.packets.CStage.onSetField(CStage.java:42) at com.dori.SpringStory.world.fieldEntities.Field.spawnPlayer(Field.java:153) at com.dori.SpringStory.utils.FieldUtils.transferChrToField(FieldUtils.java:41) at com.dori.SpringStory.connection.packet.handlers.StageHandler.handleMigrateIn(StageHandler.java:36) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at com.dori.SpringStory.connection.netty.ChannelHandler.channelRead0(ChannelHandler.java:115) at com.dori.SpringStory.connection.netty.ChannelHandler.channelRead0(ChannelHandler.java:27) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583)

doriyan13 commented 6 months ago

Fixed :)