Strip / add velocity to SpawnEntity packets that require it when rewritten

This commit is contained in:
md_5 2016-04-24 09:39:22 +10:00
parent 4872075bf7
commit 0b554be10a

View File

@ -70,7 +70,7 @@ class EntityMap_1_8 extends EntityMap
int[] ids = new int[ count ];
for ( int i = 0; i < count; i++ )
{
ids[ i ] = DefinedPacket.readVarInt( packet );
ids[i] = DefinedPacket.readVarInt( packet );
}
packet.readerIndex( readerIndex + packetIdLength );
packet.writerIndex( readerIndex + packetIdLength );
@ -97,12 +97,24 @@ class EntityMap_1_8 extends EntityMap
packet.skipBytes( 14 );
int position = packet.readerIndex();
int readId = packet.readInt();
int changedId = readId;
if ( readId == oldId )
{
packet.setInt( position, newId );
packet.setInt( position, changedId = newId );
} else if ( readId == newId )
{
packet.setInt( position, oldId );
packet.setInt( position, changedId = oldId );
}
if ( readId > 0 && changedId <= 0 )
{
packet.writerIndex( packet.writerIndex() - 3 * Short.BYTES );
} else if ( changedId > 0 && readId <= 0 )
{
packet.ensureWritable( 6 );
packet.writerIndex( packet.writerIndex() + 3 * Short.BYTES );
}
}
} else if ( packetId == 0x0C /* Spawn Player */ )