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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user