Update to 1.11.2

This commit is contained in:
johni0702
2017-01-15 01:23:44 +01:00
parent b6cf42c3be
commit 33cb1405d5
20 changed files with 75 additions and 74 deletions

View File

@@ -36,9 +36,9 @@ archivesBaseName = "replaymod"
minecraft { minecraft {
coreMod = 'com.replaymod.core.LoadingPlugin' coreMod = 'com.replaymod.core.LoadingPlugin'
version = '1.11-13.19.1.2188' version = '1.11.2-13.20.0.2216'
runDir = "eclipse" runDir = "eclipse"
mappings = "snapshot_20161111" mappings = "snapshot_20161220"
replace '@MOD_VERSION@', project.version replace '@MOD_VERSION@', project.version
replace '@MC_VERSION@', project.minecraft.version replace '@MC_VERSION@', project.minecraft.version
} }

2
jGui

Submodule jGui updated: 33c65436f0...0d69c0fcff

View File

@@ -17,7 +17,7 @@ public class Restrictions {
public String handle(SPacketCustomPayload packet) { public String handle(SPacketCustomPayload packet) {
PacketBuffer buffer = packet.getBufferData(); PacketBuffer buffer = packet.getBufferData();
while (buffer.isReadable()) { while (buffer.isReadable()) {
String name = buffer.readStringFromBuffer(64); String name = buffer.readString(64);
boolean active = buffer.readBoolean(); boolean active = buffer.readBoolean();
// if ("no_xray".equals(name)) { // if ("no_xray".equals(name)) {
// noXray = active; // noXray = active;

View File

@@ -34,7 +34,7 @@ public class PlayerOverview implements Extra {
public void run() { public void run() {
if (module.getReplayHandler() != null) { if (module.getReplayHandler() != null) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<EntityPlayer> players = mod.getMinecraft().theWorld.getPlayers(EntityPlayer.class, new Predicate() { List<EntityPlayer> players = mod.getMinecraft().world.getPlayers(EntityPlayer.class, new Predicate() {
@Override @Override
public boolean apply(Object input) { public boolean apply(Object input) {
return !(input instanceof CameraEntity); // Exclude the camera entity return !(input instanceof CameraEntity); // Exclude the camera entity

View File

@@ -5,7 +5,8 @@ public enum MinecraftVersion {
MC_1_8("Minecraft 1.8", "1.8"), MC_1_8("Minecraft 1.8", "1.8"),
MC_1_9_4("Minecraft 1.9.4", "1.9.4"), MC_1_9_4("Minecraft 1.9.4", "1.9.4"),
MC_1_10_2("Minecraft 1.10.2", "1.10.2"), MC_1_10_2("Minecraft 1.10.2", "1.10.2"),
MC_1_11("Minecraft 1.11", "1.11"); MC_1_11("Minecraft 1.11", "1.11"),
MC_1_11_2("Minecraft 1.11.2", "1.11.2");
private String niceName, apiName; private String niceName, apiName;

View File

@@ -57,7 +57,7 @@ public class RecordingEventHandler {
public void onPlayerJoin() { public void onPlayerJoin() {
try { try {
packetListener.save(new SPacketSpawnPlayer(mc.thePlayer)); packetListener.save(new SPacketSpawnPlayer(mc.player));
} catch(Exception e1) { } catch(Exception e1) {
e1.printStackTrace(); e1.printStackTrace();
} }
@@ -65,7 +65,7 @@ public class RecordingEventHandler {
public void onPlayerRespawn() { public void onPlayerRespawn() {
try { try {
packetListener.save(new SPacketSpawnPlayer(mc.thePlayer)); packetListener.save(new SPacketSpawnPlayer(mc.player));
} catch(Exception e) { } catch(Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -93,7 +93,7 @@ public class RecordingEventHandler {
@SubscribeEvent @SubscribeEvent
public void onPlayerTick(PlayerTickEvent e) { public void onPlayerTick(PlayerTickEvent e) {
try { try {
if(e.player != mc.thePlayer) return; if(e.player != mc.player) return;
boolean force = false; boolean force = false;
if(lastX == null || lastY == null || lastZ == null) { if(lastX == null || lastY == null || lastZ == null) {
@@ -168,62 +168,62 @@ public class RecordingEventHandler {
*/ */
//Inventory Handling //Inventory Handling
if (playerItems[0] != mc.thePlayer.getHeldItem(EnumHand.MAIN_HAND)) { if (playerItems[0] != mc.player.getHeldItem(EnumHand.MAIN_HAND)) {
playerItems[0] = mc.thePlayer.getHeldItem(EnumHand.MAIN_HAND); playerItems[0] = mc.player.getHeldItem(EnumHand.MAIN_HAND);
packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.MAINHAND, playerItems[0])); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.MAINHAND, playerItems[0]));
} }
if (playerItems[1] != mc.thePlayer.getHeldItem(EnumHand.OFF_HAND)) { if (playerItems[1] != mc.player.getHeldItem(EnumHand.OFF_HAND)) {
playerItems[1] = mc.thePlayer.getHeldItem(EnumHand.OFF_HAND); playerItems[1] = mc.player.getHeldItem(EnumHand.OFF_HAND);
packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.OFFHAND, playerItems[1])); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.OFFHAND, playerItems[1]));
} }
if (playerItems[2] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET)) { if (playerItems[2] != mc.player.getItemStackFromSlot(EntityEquipmentSlot.FEET)) {
playerItems[2] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET); playerItems[2] = mc.player.getItemStackFromSlot(EntityEquipmentSlot.FEET);
packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.FEET, playerItems[2])); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.FEET, playerItems[2]));
} }
if (playerItems[3] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.LEGS)) { if (playerItems[3] != mc.player.getItemStackFromSlot(EntityEquipmentSlot.LEGS)) {
playerItems[3] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.LEGS); playerItems[3] = mc.player.getItemStackFromSlot(EntityEquipmentSlot.LEGS);
packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.LEGS, playerItems[3])); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.LEGS, playerItems[3]));
} }
if (playerItems[4] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST)) { if (playerItems[4] != mc.player.getItemStackFromSlot(EntityEquipmentSlot.CHEST)) {
playerItems[4] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST); playerItems[4] = mc.player.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.CHEST, playerItems[4])); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.CHEST, playerItems[4]));
} }
if (playerItems[5] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.HEAD)) { if (playerItems[5] != mc.player.getItemStackFromSlot(EntityEquipmentSlot.HEAD)) {
playerItems[5] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.HEAD); playerItems[5] = mc.player.getItemStackFromSlot(EntityEquipmentSlot.HEAD);
packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.HEAD, playerItems[5])); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.HEAD, playerItems[5]));
} }
//Leaving Ride //Leaving Ride
if((!mc.thePlayer.isRiding() && lastRiding != -1) || if((!mc.player.isRiding() && lastRiding != -1) ||
(mc.thePlayer.isRiding() && lastRiding != mc.thePlayer.getRidingEntity().getEntityId())) { (mc.player.isRiding() && lastRiding != mc.player.getRidingEntity().getEntityId())) {
if(!mc.thePlayer.isRiding()) { if(!mc.player.isRiding()) {
lastRiding = -1; lastRiding = -1;
} else { } else {
lastRiding = mc.thePlayer.getRidingEntity().getEntityId(); lastRiding = mc.player.getRidingEntity().getEntityId();
} }
packetListener.save(new SPacketEntityAttach(e.player, e.player.getRidingEntity())); packetListener.save(new SPacketEntityAttach(e.player, e.player.getRidingEntity()));
} }
//Sleeping //Sleeping
if(!mc.thePlayer.isPlayerSleeping() && wasSleeping) { if(!mc.player.isPlayerSleeping() && wasSleeping) {
packetListener.save(new SPacketAnimation(e.player, 2)); packetListener.save(new SPacketAnimation(e.player, 2));
wasSleeping = false; wasSleeping = false;
} }
// Active hand (e.g. eating, drinking, blocking) // Active hand (e.g. eating, drinking, blocking)
if (mc.thePlayer.isHandActive() ^ wasHandActive || mc.thePlayer.getActiveHand() != lastActiveHand) { if (mc.player.isHandActive() ^ wasHandActive || mc.player.getActiveHand() != lastActiveHand) {
wasHandActive = mc.thePlayer.isHandActive(); wasHandActive = mc.player.isHandActive();
lastActiveHand = mc.thePlayer.getActiveHand(); lastActiveHand = mc.player.getActiveHand();
EntityDataManager dataManager = new EntityDataManager(null); EntityDataManager dataManager = new EntityDataManager(null);
int state = (wasHandActive ? 1 : 0) | (lastActiveHand == EnumHand.OFF_HAND ? 2 : 0); int state = (wasHandActive ? 1 : 0) | (lastActiveHand == EnumHand.OFF_HAND ? 2 : 0);
dataManager.register(EntityLiving.HAND_STATES, (byte) state); dataManager.register(EntityLiving.HAND_STATES, (byte) state);
packetListener.save(new SPacketEntityMetadata(mc.thePlayer.getEntityId(), dataManager, true)); packetListener.save(new SPacketEntityMetadata(mc.player.getEntityId(), dataManager, true));
} }
} catch(Exception e1) { } catch(Exception e1) {
@@ -244,7 +244,7 @@ public class RecordingEventHandler {
@SubscribeEvent @SubscribeEvent
public void onSleep(PlayerSleepInBedEvent event) { public void onSleep(PlayerSleepInBedEvent event) {
try { try {
if (event.getEntityPlayer() != mc.thePlayer) { if (event.getEntityPlayer() != mc.player) {
return; return;
} }
@@ -260,7 +260,7 @@ public class RecordingEventHandler {
@SubscribeEvent @SubscribeEvent
public void enterMinecart(MinecartInteractEvent event) { public void enterMinecart(MinecartInteractEvent event) {
try { try {
if(event.getEntity() != mc.thePlayer) { if(event.getEntity() != mc.player) {
return; return;
} }
@@ -273,7 +273,7 @@ public class RecordingEventHandler {
} }
public void onBlockBreakAnim(int breakerId, BlockPos pos, int progress) { public void onBlockBreakAnim(int breakerId, BlockPos pos, int progress) {
EntityPlayer thePlayer = mc.thePlayer; EntityPlayer thePlayer = mc.player;
if (thePlayer != null && breakerId == thePlayer.getEntityId()) { if (thePlayer != null && breakerId == thePlayer.getEntityId()) {
packetListener.save(new SPacketBlockBreakAnim(breakerId, pos, progress)); packetListener.save(new SPacketBlockBreakAnim(breakerId, pos, progress));
} }

View File

@@ -37,14 +37,14 @@ public abstract class MixinNetHandlerPlayClient {
*/ */
@Inject(method = "handlePlayerListItem", at=@At("HEAD")) @Inject(method = "handlePlayerListItem", at=@At("HEAD"))
public void recordOwnJoin(SPacketPlayerListItem packet, CallbackInfo ci) { public void recordOwnJoin(SPacketPlayerListItem packet, CallbackInfo ci) {
if (gameController.thePlayer == null) return; if (gameController.player == null) return;
RecordingEventHandler handler = getRecordingEventHandler(); RecordingEventHandler handler = getRecordingEventHandler();
if (handler != null && packet.getAction() == SPacketPlayerListItem.Action.ADD_PLAYER) { if (handler != null && packet.getAction() == SPacketPlayerListItem.Action.ADD_PLAYER) {
for (SPacketPlayerListItem.AddPlayerData data : packet.getEntries()) { for (SPacketPlayerListItem.AddPlayerData data : packet.getEntries()) {
if (data.getProfile() == null || data.getProfile().getId() == null) continue; if (data.getProfile() == null || data.getProfile().getId() == null) continue;
// Only add spawn packet for our own player and only if he isn't known yet // Only add spawn packet for our own player and only if he isn't known yet
if (data.getProfile().getId().equals(Minecraft.getMinecraft().thePlayer.getGameProfile().getId()) if (data.getProfile().getId().equals(Minecraft.getMinecraft().player.getGameProfile().getId())
&& !playerInfoMap.containsKey(data.getProfile().getId())) { && !playerInfoMap.containsKey(data.getProfile().getId())) {
handler.onPlayerJoin(); handler.onPlayerJoin();
} }

View File

@@ -23,6 +23,6 @@ public abstract class MixinPlayerControllerMP implements RecordingEventHandler.R
@Redirect(method = "onPlayerDestroyBlock", at = @At(value = "INVOKE", @Redirect(method = "onPlayerDestroyBlock", at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/World;playEvent(ILnet/minecraft/util/math/BlockPos;I)V")) target = "Lnet/minecraft/world/World;playEvent(ILnet/minecraft/util/math/BlockPos;I)V"))
public void replayModRecording_playEvent_fixed(World world, int type, BlockPos pos, int data) { public void replayModRecording_playEvent_fixed(World world, int type, BlockPos pos, int data) {
world.playEvent(mc.thePlayer, type, pos, data); world.playEvent(mc.player, type, pos, data);
} }
} }

View File

@@ -38,7 +38,7 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa
@Inject(method = "playSound", at = @At("HEAD")) @Inject(method = "playSound", at = @At("HEAD"))
public void replayModRecording_recordClientSound(EntityPlayer player, double x, double y, double z, SoundEvent sound, SoundCategory category, public void replayModRecording_recordClientSound(EntityPlayer player, double x, double y, double z, SoundEvent sound, SoundCategory category,
float volume, float pitch, CallbackInfo ci) { float volume, float pitch, CallbackInfo ci) {
if (player == mc.thePlayer) { if (player == mc.player) {
RecordingEventHandler handler = replayModRecording_getRecordingEventHandler(); RecordingEventHandler handler = replayModRecording_getRecordingEventHandler();
if (handler != null) { if (handler != null) {
handler.onClientSound(sound, category, x, y, z, volume, pitch); handler.onClientSound(sound, category, x, y, z, volume, pitch);
@@ -50,7 +50,7 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa
// These are handled in the World class, so we override the method in WorldClient and add our special handling. // These are handled in the World class, so we override the method in WorldClient and add our special handling.
@Override @Override
public void playEvent(EntityPlayer player, int type, BlockPos pos, int data) { public void playEvent(EntityPlayer player, int type, BlockPos pos, int data) {
if (player == mc.thePlayer) { if (player == mc.player) {
// We caused this event, the server won't send it to us // We caused this event, the server won't send it to us
RecordingEventHandler handler = replayModRecording_getRecordingEventHandler(); RecordingEventHandler handler = replayModRecording_getRecordingEventHandler();
if (handler != null) { if (handler != null) {

View File

@@ -155,8 +155,8 @@ public class PacketListener extends ChannelInboundHandlerAdapter {
Packet packet = (Packet) msg; Packet packet = (Packet) msg;
if(packet instanceof SPacketCollectItem) { if(packet instanceof SPacketCollectItem) {
if(mc.thePlayer != null || if(mc.player != null ||
((SPacketCollectItem) packet).getEntityID() == mc.thePlayer.getEntityId()) { ((SPacketCollectItem) packet).getEntityID() == mc.player.getEntityId()) {
super.channelRead(ctx, msg); super.channelRead(ctx, msg);
return; return;
} }
@@ -228,7 +228,7 @@ public class PacketListener extends ChannelInboundHandlerAdapter {
} }
ByteBuf byteBuf = Unpooled.buffer(); ByteBuf byteBuf = Unpooled.buffer();
PacketBuffer packetBuffer = new PacketBuffer(byteBuf); PacketBuffer packetBuffer = new PacketBuffer(byteBuf);
packetBuffer.writeVarIntToBuffer(packetId); packetBuffer.writeVarInt(packetId);
packet.writePacketData(packetBuffer); packet.writePacketData(packetBuffer);
byteBuf.readerIndex(0); byteBuf.readerIndex(0);

View File

@@ -110,12 +110,12 @@ public class ReplayHandler {
channel.close().awaitUninterruptibly(); channel.close().awaitUninterruptibly();
if (mc.thePlayer instanceof CameraEntity) { if (mc.player instanceof CameraEntity) {
mc.thePlayer.setDead(); mc.player.setDead();
} }
if (mc.theWorld != null) { if (mc.world != null) {
mc.theWorld.sendQuittingDisconnectingPacket(); mc.world.sendQuittingDisconnectingPacket();
mc.loadWorld(null); mc.loadWorld(null);
} }
@@ -241,7 +241,7 @@ public class ReplayHandler {
* @return {@code true} if the camera is the view entity, {@code false} otherwise * @return {@code true} if the camera is the view entity, {@code false} otherwise
*/ */
public boolean isCameraView() { public boolean isCameraView() {
return mc.thePlayer instanceof CameraEntity && mc.thePlayer == mc.getRenderViewEntity(); return mc.player instanceof CameraEntity && mc.player == mc.getRenderViewEntity();
} }
/** /**
@@ -249,7 +249,7 @@ public class ReplayHandler {
* @return The camera entity or {@code null} if it does not yet exist * @return The camera entity or {@code null} if it does not yet exist
*/ */
public CameraEntity getCameraEntity() { public CameraEntity getCameraEntity() {
return mc.thePlayer instanceof CameraEntity ? (CameraEntity) mc.thePlayer : null; return mc.player instanceof CameraEntity ? (CameraEntity) mc.player : null;
} }
public UUID getSpectatedUUID() { public UUID getSpectatedUUID() {
@@ -329,7 +329,7 @@ public class ReplayHandler {
replaySender.setReplaySpeed(0); replaySender.setReplaySpeed(0);
mc.getConnection().getNetworkManager().processReceivedPackets(); mc.getConnection().getNetworkManager().processReceivedPackets();
for (Entity entity : mc.theWorld.loadedEntityList) { for (Entity entity : mc.world.loadedEntityList) {
if (entity instanceof EntityOtherPlayerMP) { if (entity instanceof EntityOtherPlayerMP) {
EntityOtherPlayerMP e = (EntityOtherPlayerMP) entity; EntityOtherPlayerMP e = (EntityOtherPlayerMP) entity;
e.setPosition(e.otherPlayerMPX, e.otherPlayerMPY, e.otherPlayerMPZ); e.setPosition(e.otherPlayerMPX, e.otherPlayerMPY, e.otherPlayerMPZ);

View File

@@ -257,8 +257,8 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
// Entity#addedToChunk is not set and it is therefore not updated every tick. // 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 counteract this, we need to manually update it's position if it hasn't been added
// to any chunk yet. // to any chunk yet.
if (mc.theWorld != null) { if (mc.world != null) {
for (EntityPlayer playerEntity : mc.theWorld.playerEntities) { for (EntityPlayer playerEntity : mc.world.playerEntities) {
if (!playerEntity.addedToChunk && playerEntity instanceof EntityOtherPlayerMP) { if (!playerEntity.addedToChunk && playerEntity instanceof EntityOtherPlayerMP) {
playerEntity.onLivingUpdate(); playerEntity.onLivingUpdate();
} }
@@ -292,7 +292,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
// If we do not give minecraft time to tick, there will be dead entity artifacts left in the world // 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. // 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. // We do this after every SpawnX packet and after the destroy entities packet.
if (!asyncMode && mc.theWorld != null) { if (!asyncMode && mc.world != null) {
if (p instanceof SPacketSpawnPlayer if (p instanceof SPacketSpawnPlayer
|| p instanceof SPacketSpawnObject || p instanceof SPacketSpawnObject
|| p instanceof SPacketSpawnMob || p instanceof SPacketSpawnMob
@@ -300,7 +300,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
|| p instanceof SPacketSpawnPainting || p instanceof SPacketSpawnPainting
|| p instanceof SPacketSpawnExperienceOrb || p instanceof SPacketSpawnExperienceOrb
|| p instanceof SPacketDestroyEntities) { || p instanceof SPacketDestroyEntities) {
World world = mc.theWorld; World world = mc.world;
for (int i = 0; i < world.loadedEntityList.size(); ++i) { for (int i = 0; i < world.loadedEntityList.size(); ++i) {
Entity entity = world.loadedEntityList.get(i); Entity entity = world.loadedEntityList.get(i);
if (entity.isDead) { if (entity.isDead) {
@@ -331,7 +331,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
ByteBuf bb = Unpooled.wrappedBuffer(bytes); ByteBuf bb = Unpooled.wrappedBuffer(bytes);
PacketBuffer pb = new PacketBuffer(bb); PacketBuffer pb = new PacketBuffer(bb);
int i = pb.readVarIntFromBuffer(); int i = pb.readVarInt();
Packet p = EnumConnectionState.PLAY.getPacket(EnumPacketDirection.CLIENTBOUND, i); Packet p = EnumConnectionState.PLAY.getPacket(EnumPacketDirection.CLIENTBOUND, i);
p.readPacketData(pb); p.readPacketData(pb);
@@ -460,7 +460,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
@Override @Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public Void call() { public Void call() {
if (mc.theWorld == null || !mc.isCallingFromMinecraftThread()) { if (mc.world == null || !mc.isCallingFromMinecraftThread()) {
synchronized(mc.scheduledTasks) { synchronized(mc.scheduledTasks) {
mc.scheduledTasks.add(ListenableFutureTask.create(this)); mc.scheduledTasks.add(ListenableFutureTask.create(this));
} }

View File

@@ -39,7 +39,7 @@ import java.util.function.Function;
/** /**
* The camera entity used as the main player entity during replay viewing. * The camera entity used as the main player entity during replay viewing.
* During a replay {@link Minecraft#thePlayer} should be an instance of this class. * During a replay {@link Minecraft#player} should be an instance of this class.
* Camera movement is controlled by a separate {@link CameraController}. * Camera movement is controlled by a separate {@link CameraController}.
*/ */
public class CameraEntity extends EntityPlayerSP { public class CameraEntity extends EntityPlayerSP {
@@ -156,9 +156,9 @@ public class CameraEntity extends EntityPlayerSP {
// entity is recreated and we have to spectate a new entity // entity is recreated and we have to spectate a new entity
UUID spectating = ReplayModReplay.instance.getReplayHandler().getSpectatedUUID(); UUID spectating = ReplayModReplay.instance.getReplayHandler().getSpectatedUUID();
if (spectating != null && (view.getUniqueID() != spectating if (spectating != null && (view.getUniqueID() != spectating
|| view.worldObj != worldObj) || view.world != world)
|| worldObj.getEntityByID(view.getEntityId()) != view) { || world.getEntityByID(view.getEntityId()) != view) {
view = worldObj.getPlayerEntityByUUID(spectating); view = world.getPlayerEntityByUUID(spectating);
if (view != null) { if (view != null) {
mc.setRenderViewEntity(view); mc.setRenderViewEntity(view);
} else { } else {
@@ -177,17 +177,17 @@ public class CameraEntity extends EntityPlayerSP {
@Override @Override
public void preparePlayerToSpawn() { public void preparePlayerToSpawn() {
// Make sure our world is up-to-date in case of world changes // Make sure our world is up-to-date in case of world changes
if (mc.theWorld != null) { if (mc.world != null) {
worldObj = mc.theWorld; world = mc.world;
} }
super.preparePlayerToSpawn(); super.preparePlayerToSpawn();
} }
@Override @Override
public void setAngles(float yaw, float pitch) { public void setRotation(float yaw, float pitch) {
if (mc.getRenderViewEntity() == this) { if (mc.getRenderViewEntity() == this) {
// Only update camera rotation when the camera is the view // Only update camera rotation when the camera is the view
super.setAngles(yaw, pitch); super.setRotation(yaw, pitch);
} }
} }
@@ -439,8 +439,8 @@ public class CameraEntity extends EntityPlayerSP {
mc.entityRenderer.itemRenderer.itemStackOffHand = player.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND); mc.entityRenderer.itemRenderer.itemStackOffHand = player.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND);
mc.thePlayer.renderArmYaw = mc.thePlayer.prevRenderArmYaw = player.rotationYaw; mc.player.renderArmYaw = mc.player.prevRenderArmYaw = player.rotationYaw;
mc.thePlayer.renderArmPitch = mc.thePlayer.prevRenderArmPitch = player.rotationPitch; mc.player.renderArmPitch = mc.player.prevRenderArmPitch = player.rotationPitch;
} }
} }
} }

View File

@@ -58,7 +58,7 @@ public class GuiMarkerTimeline extends AbstractGuiTimeline<GuiMarkerTimeline> im
protected void drawMarker(GuiRenderer renderer, ReadableDimension size, Marker marker) { protected void drawMarker(GuiRenderer renderer, ReadableDimension size, Marker marker) {
int visibleLength = (int) (getLength() * getZoom()); int visibleLength = (int) (getLength() * getZoom());
int markerPos = MathHelper.clamp_int(marker.getTime(), getOffset(), getOffset() + visibleLength); int markerPos = MathHelper.clamp(marker.getTime(), getOffset(), getOffset() + visibleLength);
double positionInVisible = markerPos - getOffset(); double positionInVisible = markerPos - getOffset();
double fractionOfVisible = positionInVisible / visibleLength; double fractionOfVisible = positionInVisible / visibleLength;
int markerX = (int) (BORDER_LEFT + fractionOfVisible * (size.getWidth() - BORDER_LEFT - BORDER_RIGHT)); int markerX = (int) (BORDER_LEFT + fractionOfVisible * (size.getWidth() - BORDER_LEFT - BORDER_RIGHT));
@@ -99,7 +99,7 @@ public class GuiMarkerTimeline extends AbstractGuiTimeline<GuiMarkerTimeline> im
int visibleLength = (int) (getLength() * getZoom()); int visibleLength = (int) (getLength() * getZoom());
int contentWidth = lastSize.getWidth() - BORDER_LEFT - BORDER_RIGHT; int contentWidth = lastSize.getWidth() - BORDER_LEFT - BORDER_RIGHT;
for (Marker marker : replayHandler.getMarkers()) { for (Marker marker : replayHandler.getMarkers()) {
int markerPos = MathHelper.clamp_int(marker.getTime(), getOffset(), getOffset() + visibleLength); int markerPos = MathHelper.clamp(marker.getTime(), getOffset(), getOffset() + visibleLength);
double positionInVisible = markerPos - getOffset(); double positionInVisible = markerPos - getOffset();
double fractionOfVisible = positionInVisible / visibleLength; double fractionOfVisible = positionInVisible / visibleLength;
int markerX = (int) (BORDER_LEFT + fractionOfVisible * contentWidth); int markerX = (int) (BORDER_LEFT + fractionOfVisible * contentWidth);

View File

@@ -17,7 +17,7 @@ public abstract class MixinGuiSpectator {
@Inject(method = "onHotbarSelected", at = @At("HEAD"), cancellable = true) @Inject(method = "onHotbarSelected", at = @At("HEAD"), cancellable = true)
public void isInReplay(int i, CallbackInfo ci) { public void isInReplay(int i, CallbackInfo ci) {
// Prevent spectator gui from opening while in a replay // Prevent spectator gui from opening while in a replay
if (mc.thePlayer instanceof CameraEntity) { if (mc.player instanceof CameraEntity) {
ci.cancel(); ci.cancel();
} }
} }

View File

@@ -33,8 +33,8 @@ public abstract class MixinPlayerControllerMP {
@Inject(method = "isSpectator", at=@At("HEAD"), cancellable = true) @Inject(method = "isSpectator", at=@At("HEAD"), cancellable = true)
private void replayModReplay_isSpectator(CallbackInfoReturnable<Boolean> ci) { private void replayModReplay_isSpectator(CallbackInfoReturnable<Boolean> ci) {
if (mc.thePlayer instanceof CameraEntity) { // this check should in theory not be required if (mc.player instanceof CameraEntity) { // this check should in theory not be required
ci.setReturnValue(mc.thePlayer.isSpectator()); ci.setReturnValue(mc.player.isSpectator());
} }
} }
} }

View File

@@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
public abstract class MixinRenderArmorStand { public abstract class MixinRenderArmorStand {
@Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true) @Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true)
private void replayModReplay_canRenderInvisibleName(EntityArmorStand entity, CallbackInfoReturnable<Boolean> ci) { private void replayModReplay_canRenderInvisibleName(EntityArmorStand entity, CallbackInfoReturnable<Boolean> ci) {
EntityPlayer thePlayer = Minecraft.getMinecraft().thePlayer; EntityPlayer thePlayer = Minecraft.getMinecraft().player;
if (thePlayer instanceof CameraEntity && entity.isInvisible()) { if (thePlayer instanceof CameraEntity && entity.isInvisible()) {
ci.setReturnValue(false); ci.setReturnValue(false);
} }

View File

@@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
public abstract class MixinRenderLivingBase { public abstract class MixinRenderLivingBase {
@Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true) @Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true)
private void replayModReplay_canRenderInvisibleName(EntityLivingBase entity, CallbackInfoReturnable<Boolean> ci) { private void replayModReplay_canRenderInvisibleName(EntityLivingBase entity, CallbackInfoReturnable<Boolean> ci) {
EntityPlayer thePlayer = Minecraft.getMinecraft().thePlayer; EntityPlayer thePlayer = Minecraft.getMinecraft().player;
if (thePlayer instanceof CameraEntity && entity.isInvisible()) { if (thePlayer instanceof CameraEntity && entity.isInvisible()) {
ci.setReturnValue(false); ci.setReturnValue(false);
} }

View File

@@ -43,8 +43,8 @@ public abstract class MixinViewFrustum {
return; return;
} }
int i = MathHelper.floor_double(viewEntityX) - 8; int i = MathHelper.floor(viewEntityX) - 8;
int j = MathHelper.floor_double(viewEntityZ) - 8; int j = MathHelper.floor(viewEntityZ) - 8;
int k = this.countChunksX * 16; int k = this.countChunksX * 16;
for (int l = 0; l < this.countChunksX; ++l) { for (int l = 0; l < this.countChunksX; ++l) {