Handlers read from InPacket instead of SeekableLittleEndianAccessor

This commit is contained in:
P0nk
2021-08-22 22:10:19 +02:00
parent 2232022cf1
commit da2d8abc56
182 changed files with 1223 additions and 1230 deletions

View File

@@ -39,6 +39,7 @@ import constants.skills.ThunderBreaker;
import net.encryption.InitializationVector;
import net.opcodes.SendOpcode;
import net.packet.ByteBufOutPacket;
import net.packet.InPacket;
import net.packet.OutPacket;
import net.packet.Packet;
import net.server.PlayerCoolDownValueHolder;
@@ -2206,11 +2207,11 @@ public class PacketCreator {
return p;
}
private static void rebroadcastMovementList(OutPacket op, SeekableLittleEndianAccessor slea, long movementDataLength) {
private static void rebroadcastMovementList(OutPacket op, InPacket ip, long movementDataLength) {
//movement command length is sent by client, probably not a big issue? (could be calculated on server)
//if multiple write/reads are slow, could use (and cache?) a byte[] buffer
for (long i = 0; i < movementDataLength; i++) {
op.writeByte(slea.readByte());
op.writeByte(ip.readByte());
}
}
@@ -2221,24 +2222,25 @@ public class PacketCreator {
}
}
public static Packet movePlayer(int chrId, SeekableLittleEndianAccessor movementSlea, long movementDataLength) {
public static Packet movePlayer(int chrId, InPacket movementPacket, long movementDataLength) {
OutPacket p = OutPacket.create(SendOpcode.MOVE_PLAYER);
p.writeInt(chrId);
p.writeInt(0);
rebroadcastMovementList(p, movementSlea, movementDataLength);
rebroadcastMovementList(p, movementPacket, movementDataLength);
return p;
}
public static Packet moveSummon(int cid, int oid, Point startPos, SeekableLittleEndianAccessor movementSlea, long movementDataLength) {
public static Packet moveSummon(int cid, int oid, Point startPos, InPacket movementPacket, long movementDataLength) {
final OutPacket p = OutPacket.create(SendOpcode.MOVE_SUMMON);
p.writeInt(cid);
p.writeInt(oid);
p.writePos(startPos);
rebroadcastMovementList(p, movementSlea, movementDataLength);
rebroadcastMovementList(p, movementPacket, movementDataLength);
return p;
}
public static Packet moveMonster(int oid, boolean skillPossible, int skill, int skillId, int skillLevel, int pOption, Point startPos, SeekableLittleEndianAccessor movementSlea, long movementDataLength) {
public static Packet moveMonster(int oid, boolean skillPossible, int skill, int skillId, int skillLevel, int pOption,
Point startPos, InPacket movementPacket, long movementDataLength) {
final OutPacket p = OutPacket.create(SendOpcode.MOVE_MONSTER);
p.writeInt(oid);
p.writeByte(0);
@@ -2248,7 +2250,7 @@ public class PacketCreator {
p.writeByte(skillLevel);
p.writeShort(pOption);
p.writePos(startPos);
rebroadcastMovementList(p, movementSlea, movementDataLength);
rebroadcastMovementList(p, movementPacket, movementDataLength);
return p;
}
@@ -7287,11 +7289,11 @@ public class PacketCreator {
return p;
}
public static Packet moveDragon(MapleDragon dragon, Point startPos, SeekableLittleEndianAccessor movementSlea, long movementDataLength) {
public static Packet moveDragon(MapleDragon dragon, Point startPos, InPacket movementPacket, long movementDataLength) {
final OutPacket p = OutPacket.create(SendOpcode.MOVE_DRAGON);
p.writeInt(dragon.getOwner().getId());
p.writePos(startPos);
rebroadcastMovementList(p, movementSlea, movementDataLength);
rebroadcastMovementList(p, movementPacket, movementDataLength);
return p;
}