Update to MC 1.14.1

The ReplayStudio update also fixes an issue with reading the
PlayerListEntryPacket leading to NPEs during Quick Mode.
This commit is contained in:
Jonas Herzig
2019-05-20 13:38:38 +02:00
parent 0e086d91a6
commit e5ee6a3d94
49 changed files with 198 additions and 208 deletions

View File

@@ -21,11 +21,11 @@ import de.johni0702.minecraft.gui.container.GuiScreen;
import lombok.Getter;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.Identifier;
import net.minecraft.text.TextComponent;
import net.minecraft.text.Style;
import net.minecraft.text.StringTextComponent;
import net.minecraft.text.TranslatableTextComponent;
import net.minecraft.text.TextFormat;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.Style;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.ChatFormat;
import org.apache.commons.io.FileUtils;
//#if MC>=11400
@@ -34,7 +34,7 @@ import com.replaymod.core.versions.LangResourcePack;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.SharedConstants;
import net.minecraft.client.options.GameOption;
import net.minecraft.client.options.Option;
import net.minecraft.resource.DirectoryResourcePack;
import net.minecraft.resource.ResourcePackCreator;
import net.minecraft.resource.ResourcePackContainer;
@@ -236,9 +236,9 @@ public class ReplayMod implements
//#if MC>=11300
DirectoryResourcePack jGuiResourcePack = new DirectoryResourcePack(new File("../jGui/src/main/resources")) {
@Override
protected InputStream openFilename(String resourceName) throws IOException {
protected InputStream openFile(String resourceName) throws IOException {
try {
return super.openFilename(resourceName);
return super.openFile(resourceName);
//#else
//$$ List<IResourcePack> defaultResourcePacks = ((MinecraftAccessor) mc).getDefaultResourcePacks();
//$$ FolderResourcePack jGuiResourcePack = new FolderResourcePack(new File("../jGui/src/main/resources")) {
@@ -262,10 +262,10 @@ public class ReplayMod implements
}
};
//#if MC>=11300
mc.method_1520().addCreator(new ResourcePackCreator() {
mc.getResourcePackContainerManager().addCreator(new ResourcePackCreator() {
@Override
public <T extends ResourcePackContainer> void registerContainer(Map<String, T> map, ResourcePackContainer.Factory<T> factory) {
map.put("jgui", ResourcePackContainer.of("jgui", true, () -> jGuiResourcePack, factory, ResourcePackContainer.SortingDirection.BOTTOM));
map.put("jgui", ResourcePackContainer.of("jgui", true, () -> jGuiResourcePack, factory, ResourcePackContainer.InsertionPosition.BOTTOM));
}
});
//#else
@@ -335,7 +335,7 @@ public class ReplayMod implements
//#if MC>=10800
if (!MCVer.hasOptifine()) {
//#if MC>=11400
GameOption.RENDER_DISTANCE.setMax(64f);
Option.RENDER_DISTANCE.setMax(64f);
//#else
//$$ GameSettings.Options.RENDER_DISTANCE.setValueMax(64f);
//#endif
@@ -513,13 +513,13 @@ public class ReplayMod implements
if (getSettingsRegistry().get(Setting.NOTIFICATIONS)) {
// Some nostalgia: "§8[§6Replay Mod§8]§r Your message goes here"
//#if MC>=10904
Style coloredDarkGray = new Style().setColor(TextFormat.DARK_GRAY);
Style coloredGold = new Style().setColor(TextFormat.GOLD);
TextComponent text = new StringTextComponent("[").setStyle(coloredDarkGray)
.append(new TranslatableTextComponent("replaymod.title").setStyle(coloredGold))
.append(new StringTextComponent("] "))
.append(new TranslatableTextComponent(message, args).setStyle(new Style()
.setColor(warning ? TextFormat.RED : TextFormat.DARK_GREEN)));
Style coloredDarkGray = new Style().setColor(ChatFormat.DARK_GRAY);
Style coloredGold = new Style().setColor(ChatFormat.GOLD);
Component text = new TextComponent("[").setStyle(coloredDarkGray)
.append(new TranslatableComponent("replaymod.title").setStyle(coloredGold))
.append(new TextComponent("] "))
.append(new TranslatableComponent(message, args).setStyle(new Style()
.setColor(warning ? ChatFormat.RED : ChatFormat.DARK_GREEN)));
//#else
//$$ ChatStyle coloredDarkGray = new ChatStyle().setColor(EnumChatFormatting.DARK_GRAY);
//$$ ChatStyle coloredGold = new ChatStyle().setColor(EnumChatFormatting.GOLD);

View File

@@ -15,7 +15,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
//#if MC>=11400
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
//#else
//$$ import net.minecraftforge.client.event.GuiScreenEvent;
//$$ import net.minecraftforge.common.MinecraftForge;

View File

@@ -19,7 +19,7 @@ import java.util.List;
public class GuiReplaySettings extends AbstractGuiScreen<GuiReplaySettings> {
public GuiReplaySettings(final net.minecraft.client.gui.Screen parent, final SettingsRegistry settingsRegistry) {
public GuiReplaySettings(final net.minecraft.client.gui.screen.Screen parent, final SettingsRegistry settingsRegistry) {
final GuiButton doneButton = new GuiButton(this).setI18nLabel("gui.done").setSize(200, 20).onClick(new Runnable() {
@Override
public void run() {

View File

@@ -3,8 +3,8 @@ package com.replaymod.core.handler;
import com.replaymod.core.mixin.GuiMainMenuAccessor;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.MainMenuScreen;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.realms.RealmsScreenProxy;
import org.lwjgl.opengl.GL11;
@@ -35,8 +35,8 @@ public class MainMenuHandler extends EventRegistrations {
//$$ GuiScreen guiScreen = getGui(event);
//$$ List<GuiButton> buttonList = getButtonList(event);
//#endif
if (guiScreen instanceof MainMenuScreen) {
MainMenuScreen gui = (MainMenuScreen) guiScreen;
if (guiScreen instanceof TitleScreen) {
TitleScreen gui = (TitleScreen) guiScreen;
int realmsOffset = 0;
//#if MC>=11400
for (AbstractButtonWidget button : buttonList) {

View File

@@ -1,11 +1,11 @@
package com.replaymod.core.mixin;
import net.minecraft.client.gui.MainMenuScreen;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.screen.Screen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(MainMenuScreen.class)
@Mixin(TitleScreen.class)
public interface GuiMainMenuAccessor {
//#if MC>=10904
@Accessor("realmsNotificationGui")

View File

@@ -1,6 +1,6 @@
package com.replaymod.core.mixin;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

View File

@@ -30,7 +30,7 @@ public class MixinGameRenderer {
method = "render",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/gui/Screen;render(IIF)V",
target = "Lnet/minecraft/client/gui/screen/Screen;render(IIF)V",
shift = At.Shift.AFTER
)
)

View File

@@ -11,7 +11,7 @@ import com.replaymod.core.events.PostRenderCallback;
import com.replaymod.core.events.PreRenderCallback;
import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#else
@@ -71,7 +71,7 @@ public abstract class MixinMinecraft
PreTickCallback.EVENT.invoker().preTick();
}
@Inject(method = "openScreen", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/Screen;"))
@Inject(method = "openScreen", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;"))
private void openGuiScreen(Screen newGuiScreen, CallbackInfo ci) {
OpenGuiScreenCallback.EVENT.invoker().openGuiScreen(newGuiScreen);
}

View File

@@ -20,7 +20,7 @@ import java.util.List;
public class MixinModResourcePackUtil {
@Inject(method = "appendModResourcePacks", at = @At("RETURN"), remap = false)
private static void injectRMLangPack(List<ResourcePack> packList, ResourceType type, CallbackInfo ci) {
if (type != ResourceType.ASSETS) return;
if (type != ResourceType.CLIENT_RESOURCES) return;
for (int i = 0; i < packList.size(); i++) {
ResourcePack pack = packList.get(i);

View File

@@ -5,7 +5,7 @@ import com.replaymod.core.events.KeyBindingEventCallback;
import de.johni0702.minecraft.gui.versions.callbacks.MouseCallback;
import net.minecraft.client.Mouse;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
@@ -47,7 +47,7 @@ public class MixinMouseListener {
@Redirect(
method = "onMouseScroll",
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/Screen;mouseScrolled(DDD)Z")
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;mouseScrolled(DDD)Z")
)
private boolean mouseScroll(Screen element, double x, double y, double scroll) {
if (MouseCallback.EVENT.invoker().mouseScroll(x, y, scroll)) {

View File

@@ -3,7 +3,7 @@ package com.replaymod.core.mixin;
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;

View File

@@ -21,7 +21,7 @@ import de.johni0702.minecraft.gui.utils.Colors;
import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
import de.johni0702.minecraft.gui.versions.MCVer;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.crash.CrashReport;
import net.minecraft.util.Identifier;
import org.apache.commons.io.Charsets;

View File

@@ -3,7 +3,7 @@ package com.replaymod.core.versions;
import com.google.gson.Gson;
import com.replaymod.core.ReplayMod;
import net.minecraft.resource.AbstractFilenameResourcePack;
import net.minecraft.resource.AbstractFileResourcePack;
import net.minecraft.resource.ResourceNotFoundException;
import net.minecraft.resource.ResourceType;
import net.minecraft.util.Identifier;
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
* Resource pack which on-the-fly converts pre-1.13 language files into 1.13 json format.
* Also remaps `replaymod.input.*` bindings to `key.replaymod.*` as convention on Fabric.
*/
public class LangResourcePack extends AbstractFilenameResourcePack {
public class LangResourcePack extends AbstractFileResourcePack {
private static final Gson GSON = new Gson();
private static final String NAME = "replaymod_lang";
private static final Pattern JSON_FILE_PATTERN = Pattern.compile("^assets/" + ReplayMod.MOD_ID + "/lang/([a-z][a-z])_([a-z][a-z]).json$");
@@ -98,7 +98,7 @@ public class LangResourcePack extends AbstractFilenameResourcePack {
}
@Override
protected InputStream openFilename(String path) throws IOException {
protected InputStream openFile(String path) throws IOException {
if ("pack.mcmeta".equals(path)) {
return new ByteArrayInputStream("{\"pack\": {\"description\": \"ReplayMod language files\", \"pack_format\": 4}}".getBytes(StandardCharsets.UTF_8));
}
@@ -130,7 +130,7 @@ public class LangResourcePack extends AbstractFilenameResourcePack {
}
@Override
protected boolean containsFilename(String path) {
protected boolean containsFile(String path) {
Path langPath = langPath(path);
return langPath != null && Files.exists(langPath);
}
@@ -138,7 +138,7 @@ public class LangResourcePack extends AbstractFilenameResourcePack {
@Override
public Collection<Identifier> findResources(ResourceType resourcePackType, String path, int maxDepth, Predicate<String> filter) {
if (resourcePackType == ResourceType.ASSETS && "lang".equals(path)) {
if (resourcePackType == ResourceType.CLIENT_RESOURCES && "lang".equals(path)) {
Path base = baseLangPath();
//#if MC<11400
//$$ if (base == null) return Collections.emptyList();
@@ -165,7 +165,7 @@ public class LangResourcePack extends AbstractFilenameResourcePack {
@Override
public Set<String> getNamespaces(ResourceType resourcePackType) {
if (resourcePackType == ResourceType.ASSETS) {
if (resourcePackType == ResourceType.CLIENT_RESOURCES) {
return Collections.singleton("replaymod");
} else {
return Collections.emptySet();

View File

@@ -4,7 +4,7 @@ import com.replaymod.core.mixin.GuiScreenAccessor;
import com.replaymod.core.mixin.MinecraftAccessor;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.client.render.Tessellator;
import net.minecraft.client.render.entity.EntityRenderDispatcher;