diff --git a/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java b/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java index 9656c825..238564ea 100755 --- a/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java +++ b/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java @@ -150,8 +150,13 @@ public abstract class DataListener extends ChannelInboundHandlerAdapter { outputThread.start(); } - public void writeData(PacketData data) { - queue.add(data); + public synchronized void writePacket(byte[] bytes) { + if(startTime == null) { + startTime = System.currentTimeMillis(); + } + int timestamp = (int) (System.currentTimeMillis() - startTime); + lastSentPacket = timestamp; + queue.add(new PacketData(bytes, timestamp)); } public void requestFinish(Set players, Set markers) { diff --git a/src/main/java/eu/crushedpixel/replaymod/recording/PacketListener.java b/src/main/java/eu/crushedpixel/replaymod/recording/PacketListener.java index e4968ba1..7ce601b8 100755 --- a/src/main/java/eu/crushedpixel/replaymod/recording/PacketListener.java +++ b/src/main/java/eu/crushedpixel/replaymod/recording/PacketListener.java @@ -8,7 +8,6 @@ import com.google.common.util.concurrent.ListenableFuture; import eu.crushedpixel.replaymod.ReplayMod; import eu.crushedpixel.replaymod.chat.ChatMessageHandler; import eu.crushedpixel.replaymod.holders.MarkerKeyframe; -import eu.crushedpixel.replaymod.holders.PacketData; import eu.crushedpixel.replaymod.holders.Position; import eu.crushedpixel.replaymod.utils.ReplayFileIO; import io.netty.channel.ChannelHandlerContext; @@ -61,8 +60,7 @@ public class PacketListener extends DataListener { players.add(uuid.toString()); } - PacketData pd = getPacketData(packet); - writeData(pd); + dataWriter.writePacket(getPacketData(packet)); } catch(Exception e) { e.printStackTrace(); } @@ -106,8 +104,7 @@ public class PacketListener extends DataListener { return; } - PacketData pd = getPacketData(packet); - writeData(pd); + dataWriter.writePacket(getPacketData(packet)); } catch(Exception e) { e.printStackTrace(); } @@ -117,19 +114,8 @@ public class PacketListener extends DataListener { super.channelRead(ctx, msg); } - private void writeData(PacketData pd) { - dataWriter.writeData(pd); - lastSentPacket = pd.getTimestamp(); - } - @SuppressWarnings("unchecked") - private PacketData getPacketData(Packet packet) throws IOException { - - if(startTime == null) startTime = System.currentTimeMillis(); - - int timestamp = (int) (System.currentTimeMillis() - startTime); - - + private byte[] getPacketData(Packet packet) throws IOException { if(packet instanceof S0FPacketSpawnMob) { S0FPacketSpawnMob p = (S0FPacketSpawnMob) packet; if (p.field_149043_l == null) { @@ -154,9 +140,7 @@ public class PacketListener extends DataListener { } } - byte[] array = ReplayFileIO.serializePacket(packet); - - return new PacketData(array, timestamp); + return ReplayFileIO.serializePacket(packet); } public synchronized int handleResourcePack(S48PacketResourcePackSend packet) {