diff --git a/build.gradle b/build.gradle index cd25e69e..0b8825cc 100755 --- a/build.gradle +++ b/build.gradle @@ -34,9 +34,9 @@ archivesBaseName = "replaymod" minecraft { coreMod = 'com.replaymod.core.LoadingPlugin' - version = '1.10.2-12.18.2.2099' + version = '1.11-13.19.1.2188' runDir = "eclipse" - mappings = "snapshot_20160518" + mappings = "snapshot_20161111" replace '@MOD_VERSION@', project.version // Includes intentional whitespace to stop Forge from declaring the mod to be compatible with // a newer srg-compatible MC version (that may be using a different protocol version) @@ -69,7 +69,7 @@ dependencies { shade 'org.aspectj:aspectjrt:1.8.2' - shade 'com.github.replaymod:ReplayStudio:cc35b80' + shade 'com.github.replaymod:ReplayStudio:a5618f7' testCompile 'junit:junit:4.11' } diff --git a/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java b/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java index 06cda215..05a27731 100644 --- a/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java +++ b/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java @@ -93,6 +93,7 @@ public class DisableBetterSprinting { @Override public void playSoundToAllNearExcept(@Nullable EntityPlayer player, SoundEvent soundIn, SoundCategory category, double x, double y, double z, float volume, float pitch) {} @Override public void playRecord(SoundEvent soundIn, BlockPos pos) {} @Override public void spawnParticle(int p_180442_1_, boolean p_180442_2_, double p_180442_3_, double p_180442_5_, double p_180442_7_, double p_180442_9_, double p_180442_11_, double p_180442_13_, int... p_180442_15_) {} + @Override public void func_190570_a(int p_190570_1_, boolean p_190570_2_, boolean p_190570_3_, double p_190570_4_, double p_190570_6_, double p_190570_8_, double p_190570_10_, double p_190570_12_, double p_190570_14_, int... p_190570_16_) {} @Override public void onEntityAdded(Entity entityIn) {} @Override public void broadcastSound(int p_180440_1_, BlockPos p_180440_2_, int p_180440_3_) {} @Override public void playEvent(EntityPlayer player, int type, BlockPos blockPosIn, int data) {} diff --git a/src/main/java/com/replaymod/online/api/replay/holders/MinecraftVersion.java b/src/main/java/com/replaymod/online/api/replay/holders/MinecraftVersion.java index 9333b2b1..d7e6a3c2 100644 --- a/src/main/java/com/replaymod/online/api/replay/holders/MinecraftVersion.java +++ b/src/main/java/com/replaymod/online/api/replay/holders/MinecraftVersion.java @@ -4,7 +4,8 @@ public enum MinecraftVersion { MC_1_8("Minecraft 1.8", "1.8"), 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"); private String niceName, apiName; diff --git a/src/main/java/com/replaymod/recording/handler/ConnectionEventHandler.java b/src/main/java/com/replaymod/recording/handler/ConnectionEventHandler.java index ae01e5b7..62357999 100755 --- a/src/main/java/com/replaymod/recording/handler/ConnectionEventHandler.java +++ b/src/main/java/com/replaymod/recording/handler/ConnectionEventHandler.java @@ -67,6 +67,9 @@ public class ConnectionEventHandler { worldName = mc.getIntegratedServer().getWorldName(); } else if (Minecraft.getMinecraft().getCurrentServerData() != null) { worldName = Minecraft.getMinecraft().getCurrentServerData().serverIP; + } else if (Minecraft.getMinecraft().isConnectedToRealms()) { + // we can't access the server name without tapping too deep in the Realms Library + worldName = "A Realms Server"; } else { logger.info("Recording not started as the world is neither local nor remote (probably a replay)."); return; diff --git a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java index 9129c159..3c15874c 100755 --- a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java +++ b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java @@ -178,23 +178,23 @@ public class RecordingEventHandler { packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.OFFHAND, playerItems[1])); } - if (playerItems[2] != mc.thePlayer.inventory.armorInventory[0]) { - playerItems[2] = mc.thePlayer.inventory.armorInventory[0]; + if (playerItems[2] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET)) { + playerItems[2] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.FEET, playerItems[2])); } - if (playerItems[3] != mc.thePlayer.inventory.armorInventory[1]) { - playerItems[3] = mc.thePlayer.inventory.armorInventory[1]; + if (playerItems[3] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.LEGS)) { + playerItems[3] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.LEGS); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.LEGS, playerItems[3])); } - if (playerItems[4] != mc.thePlayer.inventory.armorInventory[2]) { - playerItems[4] = mc.thePlayer.inventory.armorInventory[2]; + if (playerItems[4] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST)) { + playerItems[4] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.CHEST, playerItems[4])); } - if (playerItems[5] != mc.thePlayer.inventory.armorInventory[3]) { - playerItems[5] = mc.thePlayer.inventory.armorInventory[3]; + if (playerItems[5] != mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.HEAD)) { + playerItems[5] = mc.thePlayer.getItemStackFromSlot(EntityEquipmentSlot.HEAD); packetListener.save(new SPacketEntityEquipment(e.player.getEntityId(), EntityEquipmentSlot.HEAD, playerItems[5])); } @@ -234,7 +234,8 @@ public class RecordingEventHandler { @SubscribeEvent public void onPickupItem(ItemPickupEvent event) { try { - packetListener.save(new SPacketCollectItem(event.pickedUp.getEntityId(), event.player.getEntityId())); + packetListener.save(new SPacketCollectItem(event.pickedUp.getEntityId(), event.player.getEntityId(), + event.pickedUp.getEntityItem().getMaxStackSize())); } catch(Exception e) { e.printStackTrace(); } diff --git a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java index ad3f0910..9b02105c 100644 --- a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java +++ b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java @@ -190,7 +190,7 @@ public class ResourcePackRecorder { Futures.getUnchecked(mc.addScheduledTask(() -> mc.displayGuiScreen(guiScreen))); - Map sessionInfo = ResourcePackRepository.func_190115_a(); + Map sessionInfo = ResourcePackRepository.getDownloadHeaders(); repo.downloadingPacks = HttpUtil.downloadResourcePack(file, url, sessionInfo, 50 * 1024 * 1024, guiScreen, mc.getProxy()); Futures.addCallback(repo.downloadingPacks, new FutureCallback() { @Override diff --git a/src/main/java/com/replaymod/replay/InputReplayTimer.java b/src/main/java/com/replaymod/replay/InputReplayTimer.java index de8f9b62..2d1c0da9 100644 --- a/src/main/java/com/replaymod/replay/InputReplayTimer.java +++ b/src/main/java/com/replaymod/replay/InputReplayTimer.java @@ -147,7 +147,7 @@ public class InputReplayTimer extends WrappedTimer { // TODO: Translate magic values to Keyboard.KEY_ constants if (key == 32 && Keyboard.isKeyDown(61) && mc.ingameGUI != null) { - mc.ingameGUI.getChatGUI().clearChatMessages(); + mc.ingameGUI.getChatGUI().clearChatMessages(false); } if (key == 31 && Keyboard.isKeyDown(61)) { diff --git a/src/main/java/com/replaymod/replay/ReplayHandler.java b/src/main/java/com/replaymod/replay/ReplayHandler.java index c7ef322f..7b3afc31 100755 --- a/src/main/java/com/replaymod/replay/ReplayHandler.java +++ b/src/main/java/com/replaymod/replay/ReplayHandler.java @@ -130,7 +130,7 @@ public class ReplayHandler { } private void setup() { - mc.ingameGUI.getChatGUI().clearChatMessages(); + mc.ingameGUI.getChatGUI().clearChatMessages(true); NetworkManager networkManager = new NetworkManager(EnumPacketDirection.CLIENTBOUND) { @Override diff --git a/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java index 35773daa..d37bbad5 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java @@ -31,7 +31,7 @@ public abstract class MixinViewFrustum { } /** - * Instead of calling {@link RenderChunk#setOrigin(int, int, int)} we recreate the render chunk + * Instead of calling {@link RenderChunk#setPosition(int, int, int)} we recreate the render chunk * which seems to solve the problem that chunks are invisible when you leave an area and return * to it. * Any better fixes are welcome. @@ -59,7 +59,7 @@ public abstract class MixinViewFrustum { // Recreate render chunk instead of setting its position (renderChunks[(j1 * this.countChunksY + l1) * this.countChunksX + l] = renderChunkFactory.create(world, renderGlobal, 0) - ).setOrigin(blockpos.getX(), blockpos.getY(), blockpos.getZ()); + ).setPosition(blockpos.getX(), blockpos.getY(), blockpos.getZ()); } } }