Issue #126 : Eliminated (almost) all object creation in AbstractMovementPacketHandler. (#487)

* Eliminated (almost) all object creation in AbstractMovementPacketHandler. Pets still use old system.

* Removed debug code & comments I forgot about.
This commit is contained in:
Ubaware
2019-07-16 16:14:18 -07:00
committed by Ronan Lana
parent ab5cec7f33
commit 2df59b293b
10 changed files with 230 additions and 113 deletions

View File

@@ -22,8 +22,6 @@
package net.server.channel.handlers;
import client.MapleClient;
import java.util.List;
import server.movement.LifeMovementFragment;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
@@ -31,14 +29,16 @@ public final class MovePlayerHandler extends AbstractMovementPacketHandler {
@Override
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
slea.skip(9);
final List<LifeMovementFragment> res = parseMovement(slea);
if (res != null) {
updatePosition(res, c.getPlayer(), 0);
long movementDataStart = slea.getPosition();
updatePosition(slea, c.getPlayer(), 0);
long movementDataLength = slea.getPosition() - movementDataStart; //how many bytes were read by updatePosition
if (movementDataLength > 0) {
slea.seek(movementDataStart);
c.getPlayer().getMap().movePlayer(c.getPlayer(), c.getPlayer().getPosition());
if (c.getPlayer().isHidden()) {
c.getPlayer().getMap().broadcastGMMessage(c.getPlayer(), MaplePacketCreator.movePlayer(c.getPlayer().getId(), res), false);
c.getPlayer().getMap().broadcastGMMessage(c.getPlayer(), MaplePacketCreator.movePlayer(c.getPlayer().getId(), slea, movementDataLength), false);
} else {
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.movePlayer(c.getPlayer().getId(), res), false);
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.movePlayer(c.getPlayer().getId(), slea, movementDataLength), false);
}
}
}