Make use of the source remapping feature of The Preprocessor plugin
This commit is contained in:
@@ -24,13 +24,18 @@ import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.network.*;
|
||||
import net.minecraft.network.login.server.SPacketLoginSuccess;
|
||||
import net.minecraft.network.play.server.*;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.world.EnumDifficulty;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldType;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
@@ -47,24 +52,8 @@ import net.minecraft.world.GameType;
|
||||
//#else
|
||||
//$$ import net.minecraft.world.WorldSettings.GameType;
|
||||
//#endif
|
||||
//#if MC>=10904
|
||||
import net.minecraft.network.login.server.SPacketLoginSuccess;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
//#else
|
||||
//$$ import net.minecraft.network.login.server.S02PacketLoginSuccess;
|
||||
//$$ import net.minecraft.util.IChatComponent;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
//$$ import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
//#if MC<10800
|
||||
//$$ import org.apache.commons.io.Charsets;
|
||||
//#endif
|
||||
|
||||
@@ -321,8 +310,8 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
// Entity#addedToChunk is not set and it is therefore not updated every tick.
|
||||
// To counteract this, we need to manually update it's position if it hasn't been added
|
||||
// to any chunk yet.
|
||||
if (world(mc) != null) {
|
||||
for (EntityPlayer playerEntity : playerEntities(world(mc))) {
|
||||
if (mc.world != null) {
|
||||
for (EntityPlayer playerEntity : playerEntities(mc.world)) {
|
||||
if (!playerEntity.addedToChunk && playerEntity instanceof EntityOtherPlayerMP) {
|
||||
//#if MC>=11300
|
||||
playerEntity.livingTick();
|
||||
@@ -360,8 +349,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
// If we do not give minecraft time to tick, there will be dead entity artifacts left in the world
|
||||
// Therefore we have to remove all loaded, dead entities manually if we are in sync mode.
|
||||
// We do this after every SpawnX packet and after the destroy entities packet.
|
||||
if (!asyncMode && world(mc) != null) {
|
||||
//#if MC>=10904
|
||||
if (!asyncMode && mc.world != null) {
|
||||
if (p instanceof SPacketSpawnPlayer
|
||||
|| p instanceof SPacketSpawnObject
|
||||
|| p instanceof SPacketSpawnMob
|
||||
@@ -369,23 +357,10 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
|| p instanceof SPacketSpawnPainting
|
||||
|| p instanceof SPacketSpawnExperienceOrb
|
||||
|| p instanceof SPacketDestroyEntities) {
|
||||
//#else
|
||||
//$$ if (p instanceof S0CPacketSpawnPlayer
|
||||
//$$ || p instanceof S0EPacketSpawnObject
|
||||
//$$ || p instanceof S0FPacketSpawnMob
|
||||
//$$ || p instanceof S2CPacketSpawnGlobalEntity
|
||||
//$$ || p instanceof S10PacketSpawnPainting
|
||||
//$$ || p instanceof S11PacketSpawnExperienceOrb
|
||||
//$$ || p instanceof S13PacketDestroyEntities) {
|
||||
//#endif
|
||||
World world = world(mc);
|
||||
World world = mc.world;
|
||||
for (int i = 0; i < world.loadedEntityList.size(); ++i) {
|
||||
Entity entity = loadedEntityList(world).get(i);
|
||||
//#if MC>=11300
|
||||
if (entity.removed) {
|
||||
//#else
|
||||
//$$ if (entity.isDead) {
|
||||
//#endif
|
||||
int chunkX = entity.chunkCoordX;
|
||||
int chunkY = entity.chunkCoordZ;
|
||||
|
||||
@@ -398,11 +373,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
//$$ if (entity.addedToChunk && world.getChunkProvider().chunkExists(chunkX, chunkY)) {
|
||||
//#endif
|
||||
//#endif
|
||||
//#if MC>=11300
|
||||
world.getChunk(chunkX, chunkY).removeEntity(entity);
|
||||
//#else
|
||||
//$$ world.getChunkFromChunkCoords(chunkX, chunkY).removeEntity(entity);
|
||||
//#endif
|
||||
}
|
||||
|
||||
world.loadedEntityList.remove(i--);
|
||||
@@ -425,7 +396,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
ByteBuf bb = Unpooled.wrappedBuffer(bytes);
|
||||
PacketBuffer pb = new PacketBuffer(bb);
|
||||
|
||||
int i = readVarInt(pb);
|
||||
int i = pb.readVarInt();
|
||||
|
||||
EnumConnectionState state = loginPhase ? EnumConnectionState.LOGIN : EnumConnectionState.PLAY;
|
||||
//#if MC>=10800
|
||||
@@ -444,32 +415,14 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
* @return The processed packet or {@code null} if no packet shall be sent
|
||||
*/
|
||||
protected Packet processPacket(Packet p) throws Exception {
|
||||
//#if MC>=10904
|
||||
if (p instanceof SPacketLoginSuccess) {
|
||||
//#else
|
||||
//$$ if (p instanceof S02PacketLoginSuccess) {
|
||||
//#endif
|
||||
loginPhase = false;
|
||||
return p;
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if (p instanceof SPacketCustomPayload) {
|
||||
SPacketCustomPayload packet = (SPacketCustomPayload) p;
|
||||
//#else
|
||||
//$$ if (p instanceof S3FPacketCustomPayload) {
|
||||
//$$ S3FPacketCustomPayload packet = (S3FPacketCustomPayload) p;
|
||||
//#endif
|
||||
//#if MC>=11300
|
||||
ResourceLocation channelName = packet.getChannelName();
|
||||
//#else
|
||||
//#if MC>=10800
|
||||
//$$ String channelName = packet.getChannelName();
|
||||
//#else
|
||||
//$$ String channelName = packet.func_149169_c();
|
||||
//#endif
|
||||
//#endif
|
||||
if (Restrictions.PLUGIN_CHANNEL.equals(channelName)) {
|
||||
if (Restrictions.PLUGIN_CHANNEL.equals(packet.getChannelName())) {
|
||||
final String unknown = replayHandler.getRestrictions().handle(packet);
|
||||
if (unknown == null) {
|
||||
return null;
|
||||
@@ -494,23 +447,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
}
|
||||
}
|
||||
}
|
||||
//#if MC>=10904
|
||||
if (p instanceof SPacketDisconnect) {
|
||||
ITextComponent reason = ((SPacketDisconnect) p).getReason();
|
||||
//#else
|
||||
//$$ if (p instanceof S40PacketDisconnect) {
|
||||
//#if MC>=10809
|
||||
//$$ IChatComponent reason = ((S40PacketDisconnect) p).getReason();
|
||||
//#else
|
||||
//$$ IChatComponent reason = ((S40PacketDisconnect) p).func_149165_c();
|
||||
//#endif
|
||||
//#endif
|
||||
//#if MC>=11300
|
||||
// FIXME or is it getString?
|
||||
String message = reason.getUnformattedComponentText();
|
||||
//#else
|
||||
//$$ String message = reason.getUnformattedText();
|
||||
//#endif
|
||||
String message = reason.getString();
|
||||
if ("Please update to view this replay.".equals(message)) {
|
||||
// This version of the mod supports replay restrictions so we are allowed
|
||||
// to remove this packet.
|
||||
@@ -520,22 +459,13 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
|
||||
if(BAD_PACKETS.contains(p.getClass())) return null;
|
||||
|
||||
//#if MC>=10904
|
||||
if (p instanceof SPacketCustomPayload) {
|
||||
SPacketCustomPayload packet = (SPacketCustomPayload) p;
|
||||
//#else
|
||||
//$$ if (p instanceof S3FPacketCustomPayload) {
|
||||
//$$ S3FPacketCustomPayload packet = (S3FPacketCustomPayload) p;
|
||||
//#endif
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
ResourceLocation channelName = packet.getChannelName();
|
||||
//#else
|
||||
//$$ String channelName = packet.getChannelName();
|
||||
//#endif
|
||||
//#else
|
||||
//$$ String channelName = packet.func_149169_c();
|
||||
//#endif
|
||||
//#if MC>=11300
|
||||
if (SPacketCustomPayload.BOOK_OPEN.equals(channelName)) {
|
||||
//#else
|
||||
@@ -546,19 +476,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
//#if MC>=10800
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if(p instanceof SPacketResourcePackSend) {
|
||||
SPacketResourcePackSend packet = (SPacketResourcePackSend) p;
|
||||
String url = packet.getURL();
|
||||
//#else
|
||||
//$$ if(p instanceof S48PacketResourcePackSend) {
|
||||
//$$ S48PacketResourcePackSend packet = (S48PacketResourcePackSend) p;
|
||||
//#if MC>=10809
|
||||
//$$ String url = packet.getURL();
|
||||
//#else
|
||||
//$$ String url = packet.func_179783_a();
|
||||
//#endif
|
||||
//#endif
|
||||
if (url.startsWith("replay://")) {
|
||||
//#else
|
||||
//$$ String url;
|
||||
@@ -581,19 +501,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
}
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if(p instanceof SPacketJoinGame) {
|
||||
SPacketJoinGame packet = (SPacketJoinGame) p;
|
||||
int entId = packet.getPlayerId();
|
||||
//#else
|
||||
//$$ if(p instanceof S01PacketJoinGame) {
|
||||
//$$ S01PacketJoinGame packet = (S01PacketJoinGame) p;
|
||||
//#if MC>=10800
|
||||
//$$ int entId = packet.getEntityId();
|
||||
//#else
|
||||
//$$ int entId = packet.func_149197_c();
|
||||
//#endif
|
||||
//#endif
|
||||
allowMovement = true;
|
||||
actualID = entId;
|
||||
entId = -1789435; // Camera entity id should be negative which is an invalid id and can't be used by servers
|
||||
@@ -629,22 +539,11 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
//#endif
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if(p instanceof SPacketRespawn) {
|
||||
SPacketRespawn respawn = (SPacketRespawn) p;
|
||||
p = new SPacketRespawn(
|
||||
//#if MC>=11300
|
||||
respawn.func_212643_b(),
|
||||
//#else
|
||||
//$$ respawn.getDimensionID(),
|
||||
//#endif
|
||||
respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR);
|
||||
//#else
|
||||
//$$ if(p instanceof S07PacketRespawn) {
|
||||
//$$ S07PacketRespawn respawn = (S07PacketRespawn) p;
|
||||
//#if MC>=10809
|
||||
//$$ p = new S07PacketRespawn(respawn.getDimensionID(),
|
||||
//$$ respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR);
|
||||
p = new SPacketRespawn(respawn.func_212643_b(),
|
||||
respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR);
|
||||
//#else
|
||||
//$$ p = new S07PacketRespawn(respawn.func_149082_c(),
|
||||
//$$ respawn.func_149081_d(), respawn.func_149080_f(),
|
||||
@@ -654,18 +553,12 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
//$$ GameType.ADVENTURE);
|
||||
//#endif
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
allowMovement = true;
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if(p instanceof SPacketPlayerPosLook) {
|
||||
final SPacketPlayerPosLook ppl = (SPacketPlayerPosLook) p;
|
||||
//#else
|
||||
//$$ if(p instanceof S08PacketPlayerPosLook) {
|
||||
//$$ final S08PacketPlayerPosLook ppl = (S08PacketPlayerPosLook) p;
|
||||
//#endif
|
||||
if(!hasWorldLoaded) hasWorldLoaded = true;
|
||||
|
||||
if (mc.currentScreen instanceof GuiDownloadTerrain) {
|
||||
@@ -680,15 +573,12 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
//#if MC>=10800
|
||||
//#if MC>=10904
|
||||
for (SPacketPlayerPosLook.EnumFlags relative : ppl.getFlags()) {
|
||||
//#else
|
||||
//$$ for (Object relative : ppl.func_179834_f()) {
|
||||
//#endif
|
||||
if (relative == SPacketPlayerPosLook.EnumFlags.X
|
||||
|| relative == SPacketPlayerPosLook.EnumFlags.Y
|
||||
|| relative == SPacketPlayerPosLook.EnumFlags.Z) {
|
||||
//#else
|
||||
//$$ for (Object relative : ppl.func_179834_f()) {
|
||||
//$$ if (relative == S08PacketPlayerPosLook.EnumFlags.X
|
||||
//$$ || relative == S08PacketPlayerPosLook.EnumFlags.Y
|
||||
//$$ || relative == S08PacketPlayerPosLook.EnumFlags.Z) {
|
||||
//#endif
|
||||
return null; // At least one of the coordinates is relative, so we don't care
|
||||
}
|
||||
}
|
||||
@@ -712,7 +602,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void run() {
|
||||
if (world(mc) == null || !mc.isCallingFromMinecraftThread()) {
|
||||
if (mc.world == null || !mc.isCallingFromMinecraftThread()) {
|
||||
ReplayMod.instance.runLater(this);
|
||||
return;
|
||||
}
|
||||
@@ -727,19 +617,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
}.run();
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if(p instanceof SPacketChangeGameState) {
|
||||
SPacketChangeGameState pg = (SPacketChangeGameState)p;
|
||||
int reason = pg.getGameState();
|
||||
//#else
|
||||
//$$ if(p instanceof S2BPacketChangeGameState) {
|
||||
//$$ S2BPacketChangeGameState pg = (S2BPacketChangeGameState)p;
|
||||
//#if MC>=10809
|
||||
//$$ int reason = pg.getGameState();
|
||||
//#else
|
||||
//$$ int reason = pg.func_149138_c();
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
// only allow the following packets:
|
||||
// 1 - End raining
|
||||
@@ -753,11 +633,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
}
|
||||
}
|
||||
|
||||
//#if MC>=10904
|
||||
if (p instanceof SPacketChat) {
|
||||
//#else
|
||||
//$$ if (p instanceof S02PacketChat) {
|
||||
//#endif
|
||||
if (!ReplayModReplay.instance.getCore().getSettingsRegistry().get(Setting.SHOW_CHAT)) {
|
||||
return null;
|
||||
}
|
||||
@@ -994,23 +870,11 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
protected Packet processPacketAsync(Packet p) {
|
||||
//If hurrying, ignore some packets, except for short durations
|
||||
if(desiredTimeStamp - lastTimeStamp > 1000) {
|
||||
//#if MC>=10904
|
||||
if(p instanceof SPacketParticles) return null;
|
||||
|
||||
if(p instanceof SPacketSpawnObject) {
|
||||
SPacketSpawnObject pso = (SPacketSpawnObject)p;
|
||||
int type = pso.getType();
|
||||
//#else
|
||||
//$$ if(p instanceof S2APacketParticles) return null;
|
||||
//$$
|
||||
//$$ if(p instanceof S0EPacketSpawnObject) {
|
||||
//$$ S0EPacketSpawnObject pso = (S0EPacketSpawnObject)p;
|
||||
//#if MC>=10809
|
||||
//$$ int type = pso.getType();
|
||||
//#else
|
||||
//$$ int type = pso.func_148993_l();
|
||||
//#endif
|
||||
//#endif
|
||||
if(type == 76) { // Firework rocket
|
||||
return null;
|
||||
}
|
||||
@@ -1123,7 +987,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
// Note: This is only half of the truth. Entities may be removed by chunk-unloading, see else-case below.
|
||||
// To make things worse, it seems like players were never supposed to be unloaded this way because
|
||||
// they will remain glitched in the World#playerEntities list.
|
||||
World world = world(mc);
|
||||
World world = mc.world;
|
||||
IChunkProvider chunkProvider = world.getChunkProvider();
|
||||
// Get the chunk that will be unloaded
|
||||
//#if MC>=11300
|
||||
@@ -1151,8 +1015,8 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
}
|
||||
|
||||
// Check whether the entity has left the chunk
|
||||
int chunkX = floor(entity.posX / 16);
|
||||
int chunkZ = floor(entity.posZ / 16);
|
||||
int chunkX = MathHelper.floor(entity.posX / 16);
|
||||
int chunkZ = MathHelper.floor(entity.posZ / 16);
|
||||
if (entity.chunkCoordX != chunkX || entity.chunkCoordZ != chunkZ) {
|
||||
// Entity has left the chunk
|
||||
chunk.removeEntityAtIndex(entity, entity.chunkCoordY);
|
||||
|
||||
@@ -14,22 +14,20 @@ import org.lwjgl.glfw.GLFW;
|
||||
//$$ import net.minecraft.client.settings.GameSettings;
|
||||
//$$ import net.minecraft.client.settings.KeyBinding;
|
||||
//$$ import net.minecraft.crash.CrashReport;
|
||||
//$$ import net.minecraft.util.ReportedException;
|
||||
//$$ import net.minecraftforge.client.ForgeHooksClient;
|
||||
//$$ import net.minecraftforge.common.MinecraftForge;
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//$$ import org.lwjgl.input.Mouse;
|
||||
//#if MC>=10800
|
||||
//$$ import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
//$$
|
||||
//#if MC>=10800
|
||||
//$$ import java.io.IOException;
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.FMLCommonHandler;
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Event;
|
||||
//$$ import net.minecraft.client.renderer.entity.RenderManager;
|
||||
//$$
|
||||
//$$ import static com.replaymod.core.versions.MCVer.FML_BUS;
|
||||
//#endif
|
||||
//$$ import static com.replaymod.core.versions.MCVer.newReportedException;
|
||||
//#endif
|
||||
|
||||
public class InputReplayTimer extends WrappedTimer {
|
||||
@@ -160,7 +158,7 @@ public class InputReplayTimer extends WrappedTimer {
|
||||
//$$ // Still want to be able to create debug crashes ]:D
|
||||
//$$ if (mc.debugCrashKeyPressTime > 0) {
|
||||
//$$ if (Minecraft.getSystemTime() - mc.debugCrashKeyPressTime >= 6000L) {
|
||||
//$$ throw newReportedException(new CrashReport("Manually triggered debug crash", new Throwable()));
|
||||
//$$ throw new ReportedException(new CrashReport("Manually triggered debug crash", new Throwable()));
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ if (!Keyboard.isKeyDown(Keyboard.KEY_F3) || !Keyboard.isKeyDown(Keyboard.KEY_C)) {
|
||||
|
||||
@@ -8,15 +8,10 @@ import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.util.ScreenShotHelper;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
//#if MC>=10800
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
//#else
|
||||
//$$ import com.replaymod.core.versions.MCVer.GlStateManager;
|
||||
//#endif
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
@@ -63,6 +63,7 @@ import net.minecraft.network.EnumConnectionState;
|
||||
import net.minecraft.network.EnumPacketDirection;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@@ -85,12 +86,6 @@ import java.util.function.Consumer;
|
||||
import java.util.zip.Deflater;
|
||||
import java.util.zip.Inflater;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
|
||||
//#if MC>=11200
|
||||
import com.replaymod.core.utils.WrappedTimer;
|
||||
//#endif
|
||||
@@ -657,12 +652,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
|
||||
|
||||
byteBuf.skipBytes(8); // Skip packet length & timestamp
|
||||
|
||||
int packetId =
|
||||
//#if MC>=11102
|
||||
packetBuf.readVarInt();
|
||||
//#else
|
||||
//$$ packetBuf.readVarIntFromBuffer();
|
||||
//#endif
|
||||
int packetId = packetBuf.readVarInt();
|
||||
Packet<?> mcPacket = state.getPacket(EnumPacketDirection.CLIENTBOUND, packetId);
|
||||
mcPacket.readPacketData(packetBuf);
|
||||
return mcPacket;
|
||||
@@ -696,12 +686,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
|
||||
byteBuf.writeBytes(in.readBytes(len));
|
||||
}
|
||||
|
||||
int packetId =
|
||||
//#if MC>=11102
|
||||
packetBuf.readVarInt();
|
||||
//#else
|
||||
//$$ packetBuf.readVarIntFromBuffer();
|
||||
//#endif
|
||||
int packetId = packetBuf.readVarInt();
|
||||
Packet<?> mcPacket = EnumConnectionState.PLAY.getPacket(EnumPacketDirection.CLIENTBOUND, packetId);
|
||||
mcPacket.readPacketData(packetBuf);
|
||||
return mcPacket;
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.embedded.EmbeddedChannel;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.network.NetHandlerLoginClient;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.crash.CrashReport;
|
||||
import net.minecraft.entity.Entity;
|
||||
@@ -56,22 +57,16 @@ import net.minecraftforge.fml.network.NetworkHooks;
|
||||
//$$ import net.minecraftforge.fml.client.FMLClientHandler;
|
||||
//$$ import net.minecraftforge.fml.common.network.handshake.NetworkDispatcher;
|
||||
//#endif
|
||||
import net.minecraft.client.network.NetHandlerLoginClient;
|
||||
|
||||
import static net.minecraft.client.renderer.GlStateManager.*;
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.Loader;
|
||||
//$$ import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
//$$ import com.replaymod.replay.gui.screen.GuiOpeningReplay;
|
||||
//$$ import io.netty.channel.ChannelOutboundHandlerAdapter;
|
||||
//$$ import net.minecraft.client.network.NetHandlerLoginClient;
|
||||
//$$ import net.minecraft.entity.EntityLivingBase;
|
||||
//$$ import net.minecraft.network.EnumConnectionState;
|
||||
//$$
|
||||
//$$ import java.net.InetSocketAddress;
|
||||
//$$ import java.net.SocketAddress;
|
||||
//$$
|
||||
//$$ import static com.replaymod.core.versions.MCVer.GlStateManager.*;
|
||||
//#endif
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
@@ -79,6 +74,7 @@ import javax.annotation.Nullable;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
import static com.replaymod.replay.ReplayModReplay.LOGGER;
|
||||
import static net.minecraft.client.renderer.GlStateManager.*;
|
||||
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
|
||||
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
|
||||
|
||||
@@ -185,16 +181,16 @@ public class ReplayHandler {
|
||||
|
||||
channel.close().awaitUninterruptibly();
|
||||
|
||||
if (player(mc) instanceof CameraEntity) {
|
||||
if (mc.player instanceof CameraEntity) {
|
||||
//#if MC>=11300
|
||||
player(mc).remove();
|
||||
mc.player.remove();
|
||||
//#else
|
||||
//$$ player(mc).setDead();
|
||||
//$$ mc.player.setDead();
|
||||
//#endif
|
||||
}
|
||||
|
||||
if (world(mc) != null) {
|
||||
world(mc).sendQuittingDisconnectingPacket();
|
||||
if (mc.world != null) {
|
||||
mc.world.sendQuittingDisconnectingPacket();
|
||||
mc.loadWorld(null);
|
||||
}
|
||||
|
||||
@@ -478,7 +474,7 @@ public class ReplayHandler {
|
||||
* @return {@code true} if the camera is the view entity, {@code false} otherwise
|
||||
*/
|
||||
public boolean isCameraView() {
|
||||
return player(mc) instanceof CameraEntity && player(mc) == getRenderViewEntity(mc);
|
||||
return mc.player instanceof CameraEntity && mc.player == getRenderViewEntity(mc);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -486,7 +482,7 @@ public class ReplayHandler {
|
||||
* @return The camera entity or {@code null} if it does not yet exist
|
||||
*/
|
||||
public CameraEntity getCameraEntity() {
|
||||
return player(mc) instanceof CameraEntity ? (CameraEntity) player(mc) : null;
|
||||
return mc.player instanceof CameraEntity ? (CameraEntity) mc.player : null;
|
||||
}
|
||||
|
||||
public UUID getSpectatedUUID() {
|
||||
@@ -516,7 +512,7 @@ public class ReplayHandler {
|
||||
}
|
||||
|
||||
// Update all entity positions (especially prev/lastTick values)
|
||||
for (Entity entity : loadedEntityList(world(mc))) {
|
||||
for (Entity entity : loadedEntityList(mc.world)) {
|
||||
skipTeleportInterpolation(entity);
|
||||
entity.lastTickPosX = entity.prevPosX = entity.posX;
|
||||
entity.lastTickPosY = entity.prevPosY = entity.posY;
|
||||
@@ -540,7 +536,7 @@ public class ReplayHandler {
|
||||
quickReplaySender.sendPacketsTill(targetTime);
|
||||
|
||||
// Immediately apply player teleport interpolation
|
||||
for (Entity entity : loadedEntityList(world(mc))) {
|
||||
for (Entity entity : loadedEntityList(mc.world)) {
|
||||
skipTeleportInterpolation(entity);
|
||||
}
|
||||
return;
|
||||
@@ -580,7 +576,7 @@ public class ReplayHandler {
|
||||
//$$ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
||||
//#endif
|
||||
drawBackground(0);
|
||||
drawCenteredString(getFontRenderer(mc), I18n.format("replaymod.gui.pleasewait"),
|
||||
drawCenteredString(mc.fontRenderer, I18n.format("replaymod.gui.pleasewait"),
|
||||
width / 2, height / 2, 0xffffffff);
|
||||
}
|
||||
};
|
||||
@@ -633,13 +629,13 @@ public class ReplayHandler {
|
||||
replaySender.setAsyncMode(true);
|
||||
replaySender.setReplaySpeed(0);
|
||||
|
||||
getConnection(mc).getNetworkManager()
|
||||
mc.getConnection().getNetworkManager()
|
||||
//#if MC>=11300
|
||||
.tick();
|
||||
//#else
|
||||
//$$ .processReceivedPackets();
|
||||
//#endif
|
||||
for (Entity entity : loadedEntityList(world(mc))) {
|
||||
for (Entity entity : loadedEntityList(mc.world)) {
|
||||
skipTeleportInterpolation(entity);
|
||||
entity.lastTickPosX = entity.prevPosX = entity.posX;
|
||||
entity.lastTickPosY = entity.prevPosY = entity.posY;
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.replaymod.core.Module;
|
||||
import com.replaymod.core.ReplayMod;
|
||||
import com.replaymod.core.utils.ModCompat;
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
import com.replaymod.replay.camera.CameraController;
|
||||
import com.replaymod.replay.camera.CameraControllerRegistry;
|
||||
import com.replaymod.replay.camera.CameraEntity;
|
||||
@@ -24,12 +25,6 @@ import net.minecraft.client.Minecraft;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
//#if MC>=11300
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
//#else
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//#endif
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -19,11 +19,17 @@ import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.item.EntityItemFrame;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.RayTraceResult;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.EntityViewRenderEvent;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
import net.minecraftforge.client.event.RenderHandEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.util.math.RayTraceFluidMode;
|
||||
@@ -43,30 +49,13 @@ import net.minecraft.client.util.RecipeBookClient;
|
||||
//#endif
|
||||
import net.minecraft.stats.StatisticsManager;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.RayTraceResult;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
//#else
|
||||
//$$ import net.minecraft.stats.StatFileWriter;
|
||||
//$$ import net.minecraft.util.AxisAlignedBB;
|
||||
//$$ import net.minecraft.util.IChatComponent;
|
||||
//$$ import net.minecraft.util.MovingObjectPosition;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10800
|
||||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.EventPriority;
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.EventPriority;
|
||||
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
//$$ import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
//$$ import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
//$$ import net.minecraft.util.Session;
|
||||
//#endif
|
||||
@@ -245,14 +234,14 @@ public class CameraEntity
|
||||
// entity is recreated and we have to spectate a new entity
|
||||
UUID spectating = ReplayModReplay.instance.getReplayHandler().getSpectatedUUID();
|
||||
if (spectating != null && (view.getUniqueID() != spectating
|
||||
|| world(view) != world(this))
|
||||
|| world(this).getEntityByID(view.getEntityId()) != view) {
|
||||
|| view.world != world)
|
||||
|| world.getEntityByID(view.getEntityId()) != view) {
|
||||
if (spectating == null) {
|
||||
// Entity (non-player) died, stop spectating
|
||||
ReplayModReplay.instance.getReplayHandler().spectateEntity(this);
|
||||
return;
|
||||
}
|
||||
view = world(this).getPlayerEntityByUUID(spectating);
|
||||
view = world.getPlayerEntityByUUID(spectating);
|
||||
if (view != null) {
|
||||
setRenderViewEntity(mc, view);
|
||||
} else {
|
||||
@@ -271,8 +260,8 @@ public class CameraEntity
|
||||
@Override
|
||||
public void preparePlayerToSpawn() {
|
||||
// Make sure our world is up-to-date in case of world changes
|
||||
if (world(mc) != null) {
|
||||
world(this, world(mc));
|
||||
if (mc.world != null) {
|
||||
world = mc.world;
|
||||
}
|
||||
super.preparePlayerToSpawn();
|
||||
}
|
||||
@@ -513,10 +502,10 @@ public class CameraEntity
|
||||
}
|
||||
|
||||
Map<String, KeyBinding> keyBindings = ReplayMod.instance.getKeyBindingRegistry().getKeyBindings();
|
||||
if (isKeyDown(keyBindings.get("replaymod.input.rollclockwise"))) {
|
||||
if (keyBindings.get("replaymod.input.rollclockwise").isKeyDown()) {
|
||||
roll += Utils.isCtrlDown() ? 0.2 : 1;
|
||||
}
|
||||
if (isKeyDown(keyBindings.get("replaymod.input.rollcounterclockwise"))) {
|
||||
if (keyBindings.get("replaymod.input.rollcounterclockwise").isKeyDown()) {
|
||||
roll -= Utils.isCtrlDown() ? 0.2 : 1;
|
||||
}
|
||||
}
|
||||
@@ -545,11 +534,7 @@ public class CameraEntity
|
||||
}
|
||||
//#else
|
||||
//$$ @Override
|
||||
//#if MC>=10904
|
||||
//$$ public void addChatMessage(ITextComponent message) {
|
||||
//#else
|
||||
//$$ public void addChatMessage(IChatComponent message) {
|
||||
//#endif
|
||||
//$$ if (MinecraftForge.EVENT_BUS.post(new ReplayChatMessageEvent(this))) return;
|
||||
//$$ super.addChatMessage(message);
|
||||
//$$ }
|
||||
@@ -633,8 +618,8 @@ public class CameraEntity
|
||||
//#endif
|
||||
|
||||
|
||||
player(mc).renderArmYaw = player(mc).prevRenderArmYaw = player.rotationYaw;
|
||||
player(mc).renderArmPitch = player(mc).prevRenderArmPitch = player.rotationPitch;
|
||||
mc.player.renderArmYaw = mc.player.prevRenderArmYaw = player.rotationYaw;
|
||||
mc.player.renderArmPitch = mc.player.prevRenderArmPitch = player.rotationPitch;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public class ClassicCameraController implements CameraController {
|
||||
boolean forward = false, backward = false, left = false, right = false, up = false, down = false;
|
||||
speedup = false;
|
||||
for(KeyBinding kb : getMinecraft().gameSettings.keyBindings) {
|
||||
if(!isKeyDown(kb)) continue;
|
||||
if(!kb.isKeyDown()) continue;
|
||||
if(kb.getKeyDescription().equals("key.forward")) {
|
||||
forward = true;
|
||||
speedup = true;
|
||||
|
||||
@@ -11,8 +11,6 @@ import net.minecraft.client.GameSettings;
|
||||
|
||||
import javax.vecmath.Vector3f;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
/**
|
||||
* Camera controller performing vanilla creative-like camera movements.
|
||||
*/
|
||||
@@ -47,7 +45,7 @@ public class VanillaCameraController implements CameraController {
|
||||
if (partialTicksPassed == 0) return;
|
||||
Vector3f direction = new Vector3f(0, 0, 0);
|
||||
for (int i = 0; i < 6; i++) { // First, get movement direction depending on keys pressed
|
||||
if (isKeyDown(bindings[i])) {
|
||||
if (bindings[i].isKeyDown()) {
|
||||
direction.add(DIRECTIONS[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,19 +3,8 @@ package com.replaymod.replay.events;
|
||||
import com.replaymod.replay.camera.CameraEntity;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.Cancelable;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.Cancelable;
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Cancelable;
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
|
||||
@Cancelable
|
||||
@RequiredArgsConstructor
|
||||
|
||||
@@ -3,16 +3,7 @@ package com.replaymod.replay.events;
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public abstract class ReplayCloseEvent extends Event {
|
||||
|
||||
@@ -1,17 +1,7 @@
|
||||
package com.replaymod.replay.events;
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.Cancelable;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.Cancelable;
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Cancelable;
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
|
||||
public abstract class ReplayDispatchKeypressesEvent extends Event {
|
||||
|
||||
|
||||
@@ -3,16 +3,7 @@ package com.replaymod.replay.events;
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.Event;
|
||||
//#endif
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public abstract class ReplayOpenEvent extends Event {
|
||||
|
||||
@@ -10,15 +10,10 @@ import de.johni0702.minecraft.gui.layout.HorizontalLayout;
|
||||
import de.johni0702.minecraft.gui.layout.VerticalLayout;
|
||||
import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
|
||||
import de.johni0702.minecraft.gui.utils.Colors;
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
import com.replaymod.replaystudio.data.Marker;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
|
||||
|
||||
//#if MC>=11300
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
//#else
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//#endif
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class GuiEditMarkerPopup extends AbstractGuiPopup<GuiEditMarkerPopup> implements Typeable {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.replaymod.replay.gui.overlay;
|
||||
|
||||
import com.replaymod.core.ReplayMod;
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import com.replaymod.replay.ReplayModReplay;
|
||||
import com.replaymod.replaystudio.data.Marker;
|
||||
@@ -15,12 +16,6 @@ import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
|
||||
//#if MC>=11300
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
//#else
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//#endif
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
@@ -17,25 +17,13 @@ import de.johni0702.minecraft.gui.layout.HorizontalLayout;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.WritablePoint;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.GameSettings;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.settings.GameSettings;
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
import net.minecraftforge.fml.common.gameevent.InputEvent;
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
//$$ import cpw.mods.fml.common.gameevent.InputEvent;
|
||||
|
||||
//#if MC<11300
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//#endif
|
||||
|
||||
import static com.replaymod.core.ReplayMod.TEXTURE_SIZE;
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.replaymod.core.SettingsRegistry;
|
||||
import com.replaymod.core.gui.GuiReplaySettings;
|
||||
import com.replaymod.core.utils.Utils;
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
import com.replaymod.replay.ReplayModReplay;
|
||||
import com.replaymod.replay.Setting;
|
||||
import com.replaymod.replaystudio.replay.ReplayFile;
|
||||
@@ -25,7 +26,6 @@ import de.johni0702.minecraft.gui.element.*;
|
||||
import de.johni0702.minecraft.gui.element.advanced.AbstractGuiResourceLoadingList;
|
||||
import de.johni0702.minecraft.gui.function.Typeable;
|
||||
import de.johni0702.minecraft.gui.layout.CustomLayout;
|
||||
import de.johni0702.minecraft.gui.layout.GridLayout;
|
||||
import de.johni0702.minecraft.gui.layout.HorizontalLayout;
|
||||
import de.johni0702.minecraft.gui.layout.VerticalLayout;
|
||||
import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
|
||||
@@ -39,17 +39,12 @@ import lombok.Getter;
|
||||
import net.minecraft.client.gui.GuiErrorScreen;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.crash.CrashReport;
|
||||
import net.minecraft.crash.ReportedException;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOCase;
|
||||
import org.apache.commons.io.filefilter.SuffixFileFilter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
//#if MC>=11300
|
||||
import com.replaymod.core.versions.MCVer.Keyboard;
|
||||
//#else
|
||||
//$$ import org.lwjgl.input.Keyboard;
|
||||
//#endif
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
@@ -61,7 +56,6 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static com.replaymod.replay.ReplayModReplay.LOGGER;
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
public class GuiReplayViewer extends GuiScreen {
|
||||
private final ReplayModReplay mod;
|
||||
@@ -220,7 +214,7 @@ public class GuiReplayViewer extends GuiScreen {
|
||||
try {
|
||||
list.setFolder(mod.getCore().getReplayFolder());
|
||||
} catch (IOException e) {
|
||||
throw newReportedException(CrashReport.makeCrashReport(e, "Getting replay folder"));
|
||||
throw new ReportedException(CrashReport.makeCrashReport(e, "Getting replay folder"));
|
||||
}
|
||||
|
||||
setTitle(new GuiLabel().setI18nText("replaymod.gui.replayviewer"));
|
||||
|
||||
@@ -10,16 +10,7 @@ import net.minecraft.client.gui.GuiMainMenu;
|
||||
import net.minecraft.client.gui.GuiMultiplayer;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraftforge.client.event.GuiScreenEvent;
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -70,7 +61,7 @@ public class GuiHandler {
|
||||
// Replace "Exit Server" button with "Exit Replay" button
|
||||
case BUTTON_EXIT_SERVER:
|
||||
removeButton(event, b);
|
||||
addButton(event, new GuiButton(BUTTON_EXIT_REPLAY, x(b), y(b), b.width, b.height, I18n.format("replaymod.gui.exit")) {
|
||||
addButton(event, new GuiButton(BUTTON_EXIT_REPLAY, b.x, b.y, b.width, b.height, I18n.format("replaymod.gui.exit")) {
|
||||
//#if MC>=11300
|
||||
@Override
|
||||
public void onClick(double mouseX, double mouseY) {
|
||||
@@ -97,14 +88,14 @@ public class GuiHandler {
|
||||
}
|
||||
}
|
||||
if (achievements != null && stats != null) {
|
||||
moveAllButtonsDirectlyBelowUpwards(buttonList, y(achievements),
|
||||
x(achievements), x(stats) + stats.width);
|
||||
moveAllButtonsDirectlyBelowUpwards(buttonList, achievements.y,
|
||||
achievements.x, stats.x + stats.width);
|
||||
}
|
||||
// In 1.13+ Forge, the Options button shares one row with the Open to LAN button
|
||||
//#if MC<11300
|
||||
//$$ if (openToLan != null) {
|
||||
//$$ moveAllButtonsDirectlyBelowUpwards(buttonList, y(openToLan),
|
||||
//$$ x(openToLan), x(openToLan) + openToLan.width);
|
||||
//$$ moveAllButtonsDirectlyBelowUpwards(buttonList, openToLan.y,
|
||||
//$$ openToLan.x, openToLan.x + openToLan.width);
|
||||
//$$ }
|
||||
//#endif
|
||||
}
|
||||
@@ -119,8 +110,8 @@ public class GuiHandler {
|
||||
*/
|
||||
private void moveAllButtonsDirectlyBelowUpwards(List<GuiButton> buttons, int belowY, int xStart, int xEnd) {
|
||||
for (GuiButton button : buttons) {
|
||||
if (y(button) >= belowY && x(button) <= xEnd && x(button) + button.width >= xStart) {
|
||||
y(button, y(button) - 24);
|
||||
if (button.y >= belowY && button.x <= xEnd && button.x + button.width >= xStart) {
|
||||
button.y -= 24;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public abstract class MixinGuiSpectator {
|
||||
//#endif
|
||||
public void isInReplay(int i, CallbackInfo ci) {
|
||||
// Prevent spectator gui from opening while in a replay
|
||||
if (player(getMinecraft()) instanceof CameraEntity) {
|
||||
if (getMinecraft().player instanceof CameraEntity) {
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,8 +27,6 @@ import net.minecraft.stats.StatisticsManager;
|
||||
|
||||
//#if MC>=10800
|
||||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
@@ -90,8 +88,8 @@ public abstract class MixinPlayerControllerMP {
|
||||
//$$ @Inject(method = "isSpectator", at=@At("HEAD"), cancellable = true)
|
||||
//#endif
|
||||
private void replayModReplay_isSpectator(CallbackInfoReturnable<Boolean> ci) {
|
||||
if (player(mc) instanceof CameraEntity) { // this check should in theory not be required
|
||||
ci.setReturnValue(player(mc).isSpectator());
|
||||
if (mc.player instanceof CameraEntity) { // this check should in theory not be required
|
||||
ci.setReturnValue(mc.player.isSpectator());
|
||||
}
|
||||
}
|
||||
//#endif
|
||||
|
||||
@@ -2,27 +2,18 @@ package com.replaymod.replay.mixin;
|
||||
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import com.replaymod.replay.ReplayModReplay;
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.util.Util;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.Minecraft;
|
||||
//#if MC>=10904
|
||||
//$$ import net.minecraft.client.renderer.RenderItem;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.entity.RenderItem;
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
//#if MC>=11300
|
||||
@Mixin(ItemRenderer.class)
|
||||
//#else
|
||||
//$$ @Mixin(RenderItem.class)
|
||||
//#endif
|
||||
public class MixinRenderItem {
|
||||
//#if MC>=11300
|
||||
@Redirect(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;milliTime()J"))
|
||||
|
||||
@@ -25,7 +25,7 @@ import static com.replaymod.core.versions.MCVer.*;
|
||||
public abstract class MixinRenderLivingBase {
|
||||
@Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true)
|
||||
private void replayModReplay_canRenderInvisibleName(EntityLivingBase entity, CallbackInfoReturnable<Boolean> ci) {
|
||||
EntityPlayer thePlayer = player(getMinecraft());
|
||||
EntityPlayer thePlayer = getMinecraft().player;
|
||||
if (thePlayer instanceof CameraEntity && entity.isInvisible()) {
|
||||
ci.setReturnValue(false);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.replay.mixin;
|
||||
|
||||
import net.minecraft.client.GameSettings;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.entity.Entity;
|
||||
@@ -12,12 +13,6 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.GameSettings;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.settings.GameSettings;
|
||||
//#endif
|
||||
|
||||
@Mixin(RenderManager.class)
|
||||
public class MixinRenderManager {
|
||||
@Shadow
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.replaymod.replay.mixin;
|
||||
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import com.replaymod.replay.ReplayModReplay;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
@@ -12,17 +13,7 @@ import net.minecraft.util.Util;
|
||||
//$$ import net.minecraft.client.Minecraft;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10800
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.tileentity.RenderEndPortal;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10800
|
||||
@Mixin(TileEntityEndPortalRenderer.class)
|
||||
//#else
|
||||
//$$ @Mixin(RenderEndPortal.class)
|
||||
//#endif
|
||||
public class MixinTileEntityEndPortalRenderer {
|
||||
//#if MC>=11300
|
||||
@Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;milliTime()J"))
|
||||
|
||||
@@ -3,16 +3,11 @@ package com.replaymod.replay.mixin;
|
||||
|
||||
import net.minecraft.client.renderer.ViewFrustum;
|
||||
import net.minecraft.client.renderer.chunk.RenderChunk;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
//#else
|
||||
//$$ import net.minecraft.util.BlockPos;
|
||||
//#endif
|
||||
|
||||
@Mixin(ViewFrustum.class)
|
||||
public abstract class MixinViewFrustum {
|
||||
@Redirect(method = "updateChunkPositions", at=@At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/chunk/RenderChunk;setPosition(III)V"))
|
||||
|
||||
Reference in New Issue
Block a user