From 0a71266a05c4a227393d8b320644084ec7dbc8ad Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Tue, 21 Jul 2015 18:10:46 +0200 Subject: [PATCH] Properly filters S2BPacketChangeGameState to include weather effects like rain or sky color change | https://trello.com/c/hE8Uck3m/ Do not show Titles and Chat in Replay | https://trello.com/c/SUPgAjf1/ --- .../replaymod/replay/ReplaySender.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/replay/ReplaySender.java b/src/main/java/eu/crushedpixel/replaymod/replay/ReplaySender.java index df8ecf7d..2aa45b1b 100755 --- a/src/main/java/eu/crushedpixel/replaymod/replay/ReplaySender.java +++ b/src/main/java/eu/crushedpixel/replaymod/replay/ReplaySender.java @@ -45,7 +45,6 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { * These packets are ignored completely during replay. */ private static final List BAD_PACKETS = Arrays.asList( - S2BPacketChangeGameState.class, S06PacketUpdateHealth.class, S2DPacketOpenWindow.class, S2EPacketCloseWindow.class, @@ -55,7 +54,9 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { S37PacketStatistics.class, S1FPacketSetExperience.class, S43PacketCamera.class, - S39PacketPlayerAbilities.class); + S39PacketPlayerAbilities.class, + S02PacketChat.class, + S45PacketTitle.class); /** * Whether to work in async mode. @@ -391,6 +392,22 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { }.call(); } + if(p instanceof S2BPacketChangeGameState) { + S2BPacketChangeGameState pg = (S2BPacketChangeGameState)p; + int reason = pg.func_149138_c(); + + // only allow the following packets: + // 1 - End raining + // 2 - Begin raining + // + // The following values are to control sky color (e.g. if thunderstorm) + // 7 - Fade value + // 8 - Fade time + if(!(reason == 1 || reason == 2 || reason == 7 || reason == 8)) { + return null; + } + } + return asyncMode ? processPacketAsync(p) : processPacketSync(p); }