From e4b493e83cba2126ffb24e64475578b026550c13 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Thu, 23 Apr 2026 16:17:47 +0800 Subject: [PATCH 01/27] Transform mod classes instead of lwjgl itself --- .gitignore | 2 +- .../net/minecraft/client/Minecraft.java.patch | 29 ++++++ .../client/gui/FontRenderer.java.patch | 15 ++- .../minecraft/client/gui/GuiChat.java.patch | 13 +++ ...kableScrolledSelectionListProxy.java.patch | 11 +++ .../client/gui/GuiCommandBlock.java.patch | 11 +++ .../client/gui/GuiCreateWorld.java.patch | 9 ++ .../client/gui/GuiEnchantment.java.patch | 9 ++ .../client/gui/GuiFlatPresets.java.patch | 11 +++ .../client/gui/GuiMainMenu.java.patch | 13 +++ .../client/gui/GuiMultiplayer.java.patch | 9 ++ .../client/gui/GuiOverlayDebug.java.patch | 8 +- .../minecraft/client/gui/GuiRepair.java.patch | 11 +++ .../minecraft/client/gui/GuiScreen.java.patch | 11 +++ .../client/gui/GuiScreenAddServer.java.patch | 11 +++ .../client/gui/GuiScreenBook.java.patch | 9 ++ .../gui/GuiScreenCustomizePresets.java.patch | 11 +++ .../client/gui/GuiScreenServerList.java.patch | 11 +++ .../minecraft/client/gui/GuiSlot.java.patch | 9 ++ .../client/gui/GuiTextField.java.patch | 2 +- .../gui/GuiUtilRenderComponents.java.patch | 15 ++- .../client/gui/GuiWorldEdit.java.patch | 11 +++ .../gui/achievement/GuiStats.java.patch | 11 +++ .../GuiScreenAdvancements.java.patch | 9 ++ .../gui/inventory/GuiContainer.java.patch | 9 ++ .../inventory/GuiContainerCreative.java.patch | 11 +++ .../GuiEditCommandBlockMinecart.java.patch | 11 +++ .../gui/inventory/GuiEditSign.java.patch | 11 +++ .../gui/inventory/GuiEditStructure.java.patch | 11 +++ .../gui/recipebook/GuiRecipeBook.java.patch | 9 ++ .../renderer/ActiveRenderInfo.java.patch | 9 ++ .../client/renderer/EntityRenderer.java.patch | 15 +++ .../client/renderer/GLAllocation.java.patch | 11 +++ .../client/renderer/GlStateManager.java.patch | 19 ++++ .../client/renderer/Matrix4f.java.patch | 11 +++ .../client/renderer/OpenGlHelper.java.patch | 38 +++++++- .../client/renderer/RenderGlobal.java.patch | 11 +++ .../renderer/block/model/BlockPart.java.patch | 11 +++ .../block/model/BlockPartRotation.java.patch | 11 +++ .../block/model/FaceBakery.java.patch | 13 +++ .../model/ItemCameraTransforms.java.patch | 7 +- .../block/model/ItemModelGenerator.java.patch | 11 +++ .../block/model/ItemTransformVec3f.java.patch | 7 +- .../block/model/ModelRotation.java.patch | 10 +- .../TileEntityRendererDispatcher.java.patch | 8 +- .../client/settings/GameSettings.java.patch | 13 +++ .../client/settings/KeyBinding.java.patch | 9 +- .../client/shader/Framebuffer.java.patch | 6 +- .../minecraft/client/shader/Shader.java.patch | 11 +++ .../client/shader/ShaderDefault.java.patch | 11 +++ .../client/shader/ShaderGroup.java.patch | 9 ++ .../client/shader/ShaderLoader.java.patch | 9 ++ .../client/shader/ShaderUniform.java.patch | 13 +++ .../net/minecraft/util/MouseHelper.java.patch | 11 +++ .../util/ScreenShotHelper.java.patch | 9 ++ projects/cleanroom/build.gradle | 5 +- .../{ => cleanroom}/boot/Main.java | 2 +- .../{ => cleanroom}/boot/MainClient.java | 2 +- .../{ => cleanroom}/boot/MainServer.java | 2 +- .../client/ICU4JInstances.java | 2 +- .../{ => cleanroom}/client/IMEHandler.java | 7 +- .../client/LoadingTracker.java | 6 +- .../cleanroom/client/Lwjgl3Aware.java | 10 ++ .../client/ime/DummyIMEHandler.java | 2 +- .../client/ime/WaylandIMEhandler.java | 4 +- .../client/ime/WindowsIMEHandler.java | 2 +- .../client/ime/X11IMEHandler.java | 4 +- .../client/windows/DwmApi.java | 3 +- .../{ => cleanroom}/client/windows/NtDll.java | 2 +- .../client/windows/TaskbarApi.java | 2 +- .../client/windows/WindowsProperties.java | 2 +- .../client/windows/WindowsTheme.java | 2 +- .../common/CleanroomContainer.java | 2 +- .../common/ConfigAnytimeContainer.java | 2 +- .../common/MixinContainer.java | 2 +- .../configanytime/ConfigAnytime.java | 2 +- .../{ => cleanroom}/hackery/Reflection.java | 2 +- .../hackery/ReflectionHackery.java | 2 +- .../hackery/enums/EnumHackery.java | 2 +- .../loader/LanguageAdapterRegistry.java | 2 +- .../loader/javafix/UUIDFix.java | 2 +- .../CleanroomScriptEngineManager.java | 2 +- .../cleanroommc/common/CleanroomVersion.java | 18 ++++ .../minecraftforge/client/CloudRenderer.java | 2 +- .../client/EnumHelperClient.java | 2 +- .../client/ForgeClientHandler.java | 9 +- .../client/ForgeHooksClient.java | 20 ++-- .../minecraftforge/client/GuiIngameForge.java | 2 +- .../client/event/GuiScreenEvent.java | 2 +- .../client/event/MouseEvent.java | 2 +- .../client/model/ModelLoader.java | 2 +- .../model/animation/AnimationModelBase.java | 2 +- .../client/model/animation/FastTESR.java | 2 +- .../client/settings/KeyModifier.java | 2 +- .../minecraftforge/common/MinecraftForge.java | 4 +- .../common/model/TRSRTransformation.java | 18 ++-- .../common/util/EnumHelper.java | 2 +- .../fml/client/FMLClientHandler.java | 8 +- .../minecraftforge/fml/client/GuiModList.java | 4 +- .../fml/client/GuiMultipleModsErrored.java | 2 +- .../fml/client/GuiScrollingList.java | 4 +- .../fml/client/SplashProgress.java | 19 ++-- .../fml/client/config/GuiConfig.java | 2 +- .../fml/client/config/GuiConfigEntries.java | 2 +- .../fml/client/config/GuiEditArray.java | 2 +- .../client/config/GuiEditArrayEntries.java | 2 +- .../fml/client/config/GuiUtils.java | 2 +- .../fml/common/FMLCommonHandler.java | 4 +- .../fml/common/FMLModContainer.java | 2 +- .../net/minecraftforge/fml/common/Loader.java | 8 +- .../asm/transformers/LWJGLTransformer.java | 95 ++++++++----------- .../common/registry/ItemStackHolderRef.java | 2 +- .../fml/relauncher/FMLLaunchHandler.java | 3 +- .../registries/ObjectHolderRef.java | 2 +- .../cleanroommc/hackery/EnumHackeryTest.java | 2 +- 115 files changed, 763 insertions(+), 186 deletions(-) create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiCommandBlock.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiFlatPresets.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiRepair.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiScreenAddServer.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiScreenCustomizePresets.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiScreenServerList.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/GuiWorldEdit.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/inventory/GuiEditCommandBlockMinecart.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/inventory/GuiEditSign.java.patch create mode 100644 patches/minecraft/net/minecraft/client/gui/inventory/GuiEditStructure.java.patch create mode 100644 patches/minecraft/net/minecraft/client/renderer/GLAllocation.java.patch create mode 100644 patches/minecraft/net/minecraft/client/renderer/GlStateManager.java.patch create mode 100644 patches/minecraft/net/minecraft/client/renderer/Matrix4f.java.patch create mode 100644 patches/minecraft/net/minecraft/client/renderer/block/model/BlockPart.java.patch create mode 100644 patches/minecraft/net/minecraft/client/renderer/block/model/BlockPartRotation.java.patch create mode 100644 patches/minecraft/net/minecraft/client/renderer/block/model/ItemModelGenerator.java.patch create mode 100644 patches/minecraft/net/minecraft/client/shader/Shader.java.patch create mode 100644 patches/minecraft/net/minecraft/client/shader/ShaderDefault.java.patch create mode 100644 patches/minecraft/net/minecraft/client/shader/ShaderUniform.java.patch rename src/main/java/com/cleanroommc/{ => cleanroom}/boot/Main.java (99%) rename src/main/java/com/cleanroommc/{ => cleanroom}/boot/MainClient.java (94%) rename src/main/java/com/cleanroommc/{ => cleanroom}/boot/MainServer.java (78%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/ICU4JInstances.java (92%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/IMEHandler.java (77%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/LoadingTracker.java (98%) create mode 100644 src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java rename src/main/java/com/cleanroommc/{ => cleanroom}/client/ime/DummyIMEHandler.java (78%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/ime/WaylandIMEhandler.java (81%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/ime/WindowsIMEHandler.java (96%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/ime/X11IMEHandler.java (81%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/windows/DwmApi.java (98%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/windows/NtDll.java (95%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/windows/TaskbarApi.java (99%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/windows/WindowsProperties.java (92%) rename src/main/java/com/cleanroommc/{ => cleanroom}/client/windows/WindowsTheme.java (95%) rename src/main/java/com/cleanroommc/{ => cleanroom}/common/CleanroomContainer.java (97%) rename src/main/java/com/cleanroommc/{ => cleanroom}/common/ConfigAnytimeContainer.java (95%) rename src/main/java/com/cleanroommc/{ => cleanroom}/common/MixinContainer.java (95%) rename src/main/java/com/cleanroommc/{ => cleanroom}/configanytime/ConfigAnytime.java (90%) rename src/main/java/com/cleanroommc/{ => cleanroom}/hackery/Reflection.java (97%) rename src/main/java/com/cleanroommc/{ => cleanroom}/hackery/ReflectionHackery.java (99%) rename src/main/java/com/cleanroommc/{ => cleanroom}/hackery/enums/EnumHackery.java (92%) rename src/main/java/com/cleanroommc/{ => cleanroom}/loader/LanguageAdapterRegistry.java (96%) rename src/main/java/com/cleanroommc/{ => cleanroom}/loader/javafix/UUIDFix.java (96%) rename src/main/java/com/cleanroommc/{ => cleanroom}/loader/scripting/CleanroomScriptEngineManager.java (94%) create mode 100644 src/main/java/com/cleanroommc/common/CleanroomVersion.java diff --git a/.gitignore b/.gitignore index 7032bab06..3b3291930 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,6 @@ /logs/ build/ version.txt -src/main/java/com/cleanroommc/common/CleanroomVersion.java +src/main/java/com/cleanroommc/cleanroom/common/CleanroomVersion.java !/.idea/icon.svg diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index 96dc61961..3db745e11 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -1,5 +1,34 @@ --- before/net/minecraft/client/Minecraft.java +++ after/net/minecraft/client/Minecraft.java +@@ -204,17 +204,17 @@ + import org.apache.commons.lang3.Validate; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.LWJGLException; +-import org.lwjgl.Sys; +-import org.lwjgl.input.Keyboard; +-import org.lwjgl.input.Mouse; +-import org.lwjgl.opengl.ContextCapabilities; +-import org.lwjgl.opengl.Display; +-import org.lwjgl.opengl.DisplayMode; +-import org.lwjgl.opengl.GLContext; +-import org.lwjgl.opengl.OpenGLException; +-import org.lwjgl.opengl.PixelFormat; +-import org.lwjgl.util.glu.GLU; ++import org.lwjglx.LWJGLException; ++import org.lwjglx.Sys; ++import org.lwjglx.input.Keyboard; ++import org.lwjglx.input.Mouse; ++import org.lwjglx.opengl.ContextCapabilities; ++import org.lwjglx.opengl.Display; ++import org.lwjglx.opengl.DisplayMode; ++import org.lwjglx.opengl.GLContext; ++import org.lwjglx.opengl.OpenGLException; ++import org.lwjglx.opengl.PixelFormat; ++import org.lwjglx.util.glu.GLU; + + @SideOnly(Side.CLIENT) + public class Minecraft implements IThreadListener, ISnooperInfo @@ -328,6 +328,7 @@ public Minecraft(GameConfiguration gameConfig) { diff --git a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch index 09f3bb756..68d32f4f4 100644 --- a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch @@ -1,5 +1,18 @@ --- before/net/minecraft/client/gui/FontRenderer.java +++ after/net/minecraft/client/gui/FontRenderer.java +@@ -1,11 +1,11 @@ + package net.minecraft.client.gui; + ++import com.cleanroommc.cleanroom.client.ICU4JInstances; + import com.ibm.icu.text.ArabicShaping; + import com.ibm.icu.text.ArabicShapingException; + import com.ibm.icu.text.Bidi; + import java.awt.image.BufferedImage; + import java.io.IOException; +-import java.util.Arrays; + import java.util.List; + import java.util.Locale; + import java.util.Random; @@ -56,7 +56,7 @@ this.locationFontTexture = location; this.renderEngine = textureManagerIn; @@ -140,7 +153,7 @@ + { + return java.util.Collections.singletonList(""); + } -+ com.ibm.icu.segmenter.Segments segments = com.cleanroommc.client.ICU4JInstances.SEGMENTER.segment(str); ++ com.ibm.icu.segmenter.Segments segments = ICU4JInstances.SEGMENTER.segment(str); + List list = new java.util.ArrayList<>(); + StringBuilder line = new StringBuilder(); + StringBuilder seg = new StringBuilder(); diff --git a/patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch new file mode 100644 index 000000000..15a3811b8 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch @@ -0,0 +1,13 @@ +--- before/net/minecraft/client/gui/GuiChat.java ++++ after/net/minecraft/client/gui/GuiChat.java +@@ -14,8 +14,8 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Keyboard; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Keyboard; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public class GuiChat extends GuiScreen implements ITabCompleter diff --git a/patches/minecraft/net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy.java.patch new file mode 100644 index 000000000..e2621a5a0 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy.java ++++ after/net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy.java +@@ -5,7 +5,7 @@ + import net.minecraft.realms.Tezzelator; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public class GuiClickableScrolledSelectionListProxy extends GuiSlot diff --git a/patches/minecraft/net/minecraft/client/gui/GuiCommandBlock.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiCommandBlock.java.patch new file mode 100644 index 000000000..b73bb8d14 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiCommandBlock.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiCommandBlock.java ++++ after/net/minecraft/client/gui/GuiCommandBlock.java +@@ -13,7 +13,7 @@ + import net.minecraft.util.math.BlockPos; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiCommandBlock extends GuiScreen implements ITabCompleter diff --git a/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch index 29f9068b5..49564cf80 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/GuiCreateWorld.java +++ after/net/minecraft/client/gui/GuiCreateWorld.java +@@ -12,7 +12,7 @@ + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.lang3.StringUtils; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiCreateWorld extends GuiScreen @@ -240,6 +240,8 @@ } } diff --git a/patches/minecraft/net/minecraft/client/gui/GuiEnchantment.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiEnchantment.java.patch index 4ce1bcc20..b8340144a 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiEnchantment.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiEnchantment.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/GuiEnchantment.java +++ after/net/minecraft/client/gui/GuiEnchantment.java +@@ -21,7 +21,7 @@ + import net.minecraft.world.World; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.glu.Project; ++import org.lwjglx.util.glu.Project; + + @SideOnly(Side.CLIENT) + public class GuiEnchantment extends GuiContainer @@ -179,7 +179,7 @@ FontRenderer fontrenderer = this.mc.standardGalacticFontRenderer; int i2 = 6839882; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiFlatPresets.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiFlatPresets.java.patch new file mode 100644 index 000000000..a19c81420 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiFlatPresets.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiFlatPresets.java ++++ after/net/minecraft/client/gui/GuiFlatPresets.java +@@ -23,7 +23,7 @@ + import net.minecraft.world.gen.FlatLayerInfo; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiFlatPresets extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch index e75af2010..d4f852cf3 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch @@ -1,5 +1,18 @@ --- before/net/minecraft/client/gui/GuiMainMenu.java +++ after/net/minecraft/client/gui/GuiMainMenu.java +@@ -34,9 +34,9 @@ + import org.apache.commons.io.IOUtils; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Mouse; +-import org.lwjgl.opengl.GLContext; +-import org.lwjgl.util.glu.Project; ++import org.lwjglx.input.Mouse; ++import org.lwjglx.opengl.GLContext; ++import org.lwjglx.util.glu.Project; + + @SideOnly(Side.CLIENT) + public class GuiMainMenu extends GuiScreen @@ -77,6 +77,8 @@ private GuiScreen realmsNotification; private int widthCopyright; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch index 376374714..f39c363cc 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/GuiMultiplayer.java +++ after/net/minecraft/client/gui/GuiMultiplayer.java +@@ -15,7 +15,7 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiMultiplayer extends GuiScreen @@ -41,6 +41,7 @@ public GuiMultiplayer(GuiScreen parentScreen) { diff --git a/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch index 29155c0b9..d66aa5eec 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch @@ -8,14 +8,16 @@ import java.util.List; import java.util.Map.Entry; import net.minecraft.block.Block; -@@ -25,6 +26,7 @@ +@@ -25,7 +26,8 @@ import net.minecraft.world.chunk.Chunk; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -+import org.lwjgl.Sys; - import org.lwjgl.opengl.Display; +-import org.lwjgl.opengl.Display; ++import org.lwjglx.Sys; ++import org.lwjglx.opengl.Display; @SideOnly(Side.CLIENT) + public class GuiOverlayDebug extends Gui @@ -254,6 +256,7 @@ long l = j - k; List list = Lists.newArrayList( diff --git a/patches/minecraft/net/minecraft/client/gui/GuiRepair.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiRepair.java.patch new file mode 100644 index 000000000..8ca33e9d8 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiRepair.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiRepair.java ++++ after/net/minecraft/client/gui/GuiRepair.java +@@ -20,7 +20,7 @@ + import net.minecraft.world.World; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiRepair extends GuiContainer implements IContainerListener diff --git a/patches/minecraft/net/minecraft/client/gui/GuiScreen.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiScreen.java.patch index 99927254b..312201c02 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiScreen.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiScreen.java.patch @@ -1,5 +1,16 @@ --- before/net/minecraft/client/gui/GuiScreen.java +++ after/net/minecraft/client/gui/GuiScreen.java +@@ -37,8 +37,8 @@ + import org.apache.commons.lang3.StringUtils; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Keyboard; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Keyboard; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public abstract class GuiScreen extends Gui implements GuiYesNoCallback @@ -60,6 +60,7 @@ private int touchValue; private URI clickedLinkURI; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiScreenAddServer.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiScreenAddServer.java.patch new file mode 100644 index 000000000..520c8ffc1 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiScreenAddServer.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiScreenAddServer.java ++++ after/net/minecraft/client/gui/GuiScreenAddServer.java +@@ -9,7 +9,7 @@ + import net.minecraft.util.StringUtils; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiScreenAddServer extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/GuiScreenBook.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiScreenBook.java.patch index cf4739514..d542a5501 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiScreenBook.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiScreenBook.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/GuiScreenBook.java +++ after/net/minecraft/client/gui/GuiScreenBook.java +@@ -27,7 +27,7 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiScreenBook extends GuiScreen @@ -69,6 +69,7 @@ if (this.bookTotalPages < 1) diff --git a/patches/minecraft/net/minecraft/client/gui/GuiScreenCustomizePresets.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiScreenCustomizePresets.java.patch new file mode 100644 index 000000000..2d8cbec33 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiScreenCustomizePresets.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiScreenCustomizePresets.java ++++ after/net/minecraft/client/gui/GuiScreenCustomizePresets.java +@@ -12,7 +12,7 @@ + import net.minecraft.world.gen.ChunkGeneratorSettings; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiScreenCustomizePresets extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/GuiScreenServerList.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiScreenServerList.java.patch new file mode 100644 index 000000000..f409a72b2 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiScreenServerList.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiScreenServerList.java ++++ after/net/minecraft/client/gui/GuiScreenServerList.java +@@ -5,7 +5,7 @@ + import net.minecraft.client.resources.I18n; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiScreenServerList extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/GuiSlot.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiSlot.java.patch index 711e0af1c..8c6b421e9 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiSlot.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiSlot.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/GuiSlot.java +++ after/net/minecraft/client/gui/GuiSlot.java +@@ -8,7 +8,7 @@ + import net.minecraft.util.math.MathHelper; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public abstract class GuiSlot @@ -186,27 +186,8 @@ GlStateManager.disableFog(); Tessellator tessellator = Tessellator.getInstance(); diff --git a/patches/minecraft/net/minecraft/client/gui/GuiTextField.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiTextField.java.patch index bdb0e09bd..328369c10 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiTextField.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiTextField.java.patch @@ -3,7 +3,7 @@ @@ -1,5 +1,6 @@ package net.minecraft.client.gui; -+import com.cleanroommc.client.IMEHandler; ++import com.cleanroommc.cleanroom.client.IMEHandler; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import net.minecraft.client.Minecraft; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiUtilRenderComponents.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiUtilRenderComponents.java.patch index d06777f47..01bf90885 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiUtilRenderComponents.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiUtilRenderComponents.java.patch @@ -1,12 +1,19 @@ --- before/net/minecraft/client/gui/GuiUtilRenderComponents.java +++ after/net/minecraft/client/gui/GuiUtilRenderComponents.java -@@ -56,13 +56,14 @@ +@@ -1,5 +1,6 @@ + package net.minecraft.client.gui; + ++import com.cleanroommc.cleanroom.client.ICU4JInstances; + import com.google.common.collect.Lists; + import java.util.List; + import net.minecraft.client.Minecraft; +@@ -56,13 +57,14 @@ if (s3 != null && !s3.isEmpty()) { - int l = s2.lastIndexOf(32); -+ com.cleanroommc.client.ICU4JInstances.BREAK_ITERATOR.setText(s4); -+ int l = com.cleanroommc.client.ICU4JInstances.BREAK_ITERATOR.preceding(s2.length()); ++ ICU4JInstances.BREAK_ITERATOR.setText(s4); ++ int l = ICU4JInstances.BREAK_ITERATOR.preceding(s2.length()); if (l >= 0 && fontRendererIn.getStringWidth(s4.substring(0, l)) > 0) { @@ -17,7 +24,7 @@ { l++; } -@@ -74,6 +75,8 @@ +@@ -74,6 +76,8 @@ s2 = ""; s3 = s4; } diff --git a/patches/minecraft/net/minecraft/client/gui/GuiWorldEdit.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiWorldEdit.java.patch new file mode 100644 index 000000000..7db7031bc --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiWorldEdit.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/GuiWorldEdit.java ++++ after/net/minecraft/client/gui/GuiWorldEdit.java +@@ -8,7 +8,7 @@ + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.io.FileUtils; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiWorldEdit extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch b/patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch new file mode 100644 index 000000000..5ff040a47 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/achievement/GuiStats.java ++++ after/net/minecraft/client/gui/achievement/GuiStats.java +@@ -29,7 +29,7 @@ + import net.minecraft.stats.StatisticsManager; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public class GuiStats extends GuiScreen implements IProgressMeter diff --git a/patches/minecraft/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java.patch b/patches/minecraft/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java.patch index 37d169a53..b1fd5ff48 100644 --- a/patches/minecraft/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java +++ after/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java +@@ -16,7 +16,7 @@ + import net.minecraft.util.ResourceLocation; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public class GuiScreenAdvancements extends GuiScreen implements ClientAdvancementManager.IListener @@ -29,6 +29,7 @@ private int scrollMouseX; private int scrollMouseY; diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java.patch index a380caf72..36e9c1415 100644 --- a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/inventory/GuiContainer.java +++ after/net/minecraft/client/gui/inventory/GuiContainer.java +@@ -20,7 +20,7 @@ + import net.minecraft.util.text.TextFormatting; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public abstract class GuiContainer extends GuiScreen @@ -118,6 +118,7 @@ RenderHelper.disableStandardItemLighting(); this.drawGuiContainerForegroundLayer(mouseX, mouseY); diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch index ff08abb6c..ea6ae2d8e 100644 --- a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch @@ -1,5 +1,16 @@ --- before/net/minecraft/client/gui/inventory/GuiContainerCreative.java +++ after/net/minecraft/client/gui/inventory/GuiContainerCreative.java +@@ -40,8 +40,8 @@ + import net.minecraft.util.text.TextFormatting; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; +-import org.lwjgl.input.Mouse; ++import org.lwjglx.input.Keyboard; ++import org.lwjglx.input.Mouse; + + @SideOnly(Side.CLIENT) + public class GuiContainerCreative extends InventoryEffectRenderer @@ -57,6 +57,8 @@ private Slot destroyItemSlot; private boolean clearSearch; diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditCommandBlockMinecart.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditCommandBlockMinecart.java.patch new file mode 100644 index 000000000..ebd9bd047 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditCommandBlockMinecart.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/inventory/GuiEditCommandBlockMinecart.java ++++ after/net/minecraft/client/gui/inventory/GuiEditCommandBlockMinecart.java +@@ -15,7 +15,7 @@ + import net.minecraft.util.math.BlockPos; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiEditCommandBlockMinecart extends GuiScreen implements ITabCompleter diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditSign.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditSign.java.patch new file mode 100644 index 000000000..76b304099 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditSign.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/inventory/GuiEditSign.java ++++ after/net/minecraft/client/gui/inventory/GuiEditSign.java +@@ -15,7 +15,7 @@ + import net.minecraft.util.text.TextComponentString; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiEditSign extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditStructure.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditStructure.java.patch new file mode 100644 index 000000000..b506cc245 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiEditStructure.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/gui/inventory/GuiEditStructure.java ++++ after/net/minecraft/client/gui/inventory/GuiEditStructure.java +@@ -22,7 +22,7 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiEditStructure extends GuiScreen diff --git a/patches/minecraft/net/minecraft/client/gui/recipebook/GuiRecipeBook.java.patch b/patches/minecraft/net/minecraft/client/gui/recipebook/GuiRecipeBook.java.patch index 88e1d710c..32d0bd90b 100644 --- a/patches/minecraft/net/minecraft/client/gui/recipebook/GuiRecipeBook.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/recipebook/GuiRecipeBook.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/gui/recipebook/GuiRecipeBook.java +++ after/net/minecraft/client/gui/recipebook/GuiRecipeBook.java +@@ -33,7 +33,7 @@ + import net.minecraft.util.ResourceLocation; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) + public class GuiRecipeBook extends Gui implements IRecipeUpdateListener @@ -450,7 +450,7 @@ languagemanager.setCurrentLanguage(language); diff --git a/patches/minecraft/net/minecraft/client/renderer/ActiveRenderInfo.java.patch b/patches/minecraft/net/minecraft/client/renderer/ActiveRenderInfo.java.patch index b62c5b6ab..edb6c10f6 100644 --- a/patches/minecraft/net/minecraft/client/renderer/ActiveRenderInfo.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/ActiveRenderInfo.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/renderer/ActiveRenderInfo.java +++ after/net/minecraft/client/renderer/ActiveRenderInfo.java +@@ -12,7 +12,7 @@ + import net.minecraft.world.World; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.glu.GLU; ++import org.lwjglx.util.glu.GLU; + + @SideOnly(Side.CLIENT) + public class ActiveRenderInfo @@ -30,6 +30,11 @@ public static void updateRenderInfo(EntityPlayer entityplayerIn, boolean p_74583_1_) diff --git a/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch index 3fbb2b78e..dee501cb1 100644 --- a/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch @@ -1,5 +1,20 @@ --- before/net/minecraft/client/renderer/EntityRenderer.java +++ after/net/minecraft/client/renderer/EntityRenderer.java +@@ -70,10 +70,10 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Mouse; +-import org.lwjgl.opengl.Display; +-import org.lwjgl.opengl.GLContext; +-import org.lwjgl.util.glu.Project; ++import org.lwjglx.input.Mouse; ++import org.lwjglx.opengl.Display; ++import org.lwjglx.opengl.GLContext; ++import org.lwjglx.util.glu.Project; + + @SideOnly(Side.CLIENT) + public class EntityRenderer implements IResourceManagerReloadListener @@ -235,6 +235,7 @@ { this.loadShader(new ResourceLocation("shaders/post/invert.json")); diff --git a/patches/minecraft/net/minecraft/client/renderer/GLAllocation.java.patch b/patches/minecraft/net/minecraft/client/renderer/GLAllocation.java.patch new file mode 100644 index 000000000..6c3284f85 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/GLAllocation.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/renderer/GLAllocation.java ++++ after/net/minecraft/client/renderer/GLAllocation.java +@@ -6,7 +6,7 @@ + import java.nio.IntBuffer; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.glu.GLU; ++import org.lwjglx.util.glu.GLU; + + @SideOnly(Side.CLIENT) + public class GLAllocation diff --git a/patches/minecraft/net/minecraft/client/renderer/GlStateManager.java.patch b/patches/minecraft/net/minecraft/client/renderer/GlStateManager.java.patch new file mode 100644 index 000000000..8bd8c91c5 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/GlStateManager.java.patch @@ -0,0 +1,19 @@ +--- before/net/minecraft/client/renderer/GlStateManager.java ++++ after/net/minecraft/client/renderer/GlStateManager.java +@@ -7,11 +7,11 @@ + import javax.annotation.Nullable; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.BufferUtils; +-import org.lwjgl.opengl.GL11; +-import org.lwjgl.opengl.GL14; +-import org.lwjgl.opengl.GLContext; +-import org.lwjgl.util.vector.Quaternion; ++import org.lwjglx.BufferUtils; ++import org.lwjglx.opengl.GL11; ++import org.lwjglx.opengl.GL14; ++import org.lwjglx.opengl.GLContext; ++import org.lwjglx.util.vector.Quaternion; + + @SideOnly(Side.CLIENT) + public class GlStateManager diff --git a/patches/minecraft/net/minecraft/client/renderer/Matrix4f.java.patch b/patches/minecraft/net/minecraft/client/renderer/Matrix4f.java.patch new file mode 100644 index 000000000..b723fe5cb --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/Matrix4f.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/renderer/Matrix4f.java ++++ after/net/minecraft/client/renderer/Matrix4f.java +@@ -4,7 +4,7 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + + @SideOnly(Side.CLIENT) +-public class Matrix4f extends org.lwjgl.util.vector.Matrix4f ++public class Matrix4f extends org.lwjglx.util.vector.Matrix4f + { + public Matrix4f(float[] matrix) + { diff --git a/patches/minecraft/net/minecraft/client/renderer/OpenGlHelper.java.patch b/patches/minecraft/net/minecraft/client/renderer/OpenGlHelper.java.patch index 1c2745c34..aa6db6207 100644 --- a/patches/minecraft/net/minecraft/client/renderer/OpenGlHelper.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/OpenGlHelper.java.patch @@ -1,7 +1,41 @@ --- before/net/minecraft/client/renderer/OpenGlHelper.java +++ after/net/minecraft/client/renderer/OpenGlHelper.java -@@ -33,6 +33,7 @@ - import org.lwjgl.opengl.GLContext; +@@ -15,24 +15,25 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.Sys; +-import org.lwjgl.opengl.ARBFramebufferObject; +-import org.lwjgl.opengl.ARBMultitexture; +-import org.lwjgl.opengl.ARBShaderObjects; +-import org.lwjgl.opengl.ARBVertexBufferObject; +-import org.lwjgl.opengl.ARBVertexShader; +-import org.lwjgl.opengl.ContextCapabilities; +-import org.lwjgl.opengl.EXTBlendFuncSeparate; +-import org.lwjgl.opengl.EXTFramebufferObject; +-import org.lwjgl.opengl.GL11; +-import org.lwjgl.opengl.GL13; +-import org.lwjgl.opengl.GL14; +-import org.lwjgl.opengl.GL15; +-import org.lwjgl.opengl.GL20; +-import org.lwjgl.opengl.GL30; +-import org.lwjgl.opengl.GLContext; ++import org.lwjglx.Sys; ++import org.lwjglx.opengl.ARBFramebufferObject; ++import org.lwjglx.opengl.ARBMultitexture; ++import org.lwjglx.opengl.ARBShaderObjects; ++import org.lwjglx.opengl.ARBVertexBufferObject; ++import org.lwjglx.opengl.ARBVertexShader; ++import org.lwjglx.opengl.ContextCapabilities; ++import org.lwjglx.opengl.EXTBlendFuncSeparate; ++import org.lwjglx.opengl.EXTFramebufferObject; ++import org.lwjglx.opengl.GL11; ++import org.lwjglx.opengl.GL13; ++import org.lwjglx.opengl.GL14; ++import org.lwjglx.opengl.GL15; ++import org.lwjglx.opengl.GL20; ++import org.lwjglx.opengl.GL30; ++import org.lwjglx.opengl.GLContext; import oshi.SystemInfo; import oshi.hardware.Processor; +import oshi.hardware.CentralProcessor; diff --git a/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch b/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch index 6dccddcb6..cdbfbaa13 100644 --- a/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch @@ -1,5 +1,16 @@ --- before/net/minecraft/client/renderer/RenderGlobal.java +++ after/net/minecraft/client/renderer/RenderGlobal.java +@@ -87,8 +87,8 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.util.vector.Vector3f; +-import org.lwjgl.util.vector.Vector4f; ++import org.lwjglx.util.vector.Vector3f; ++import org.lwjglx.util.vector.Vector4f; + + @SideOnly(Side.CLIENT) + public class RenderGlobal implements IWorldEventListener, IResourceManagerReloadListener @@ -560,8 +560,10 @@ public void renderEntities(Entity renderViewEntity, ICamera camera, float partialTicks) diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/BlockPart.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/BlockPart.java.patch new file mode 100644 index 000000000..93962ba48 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/BlockPart.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/renderer/block/model/BlockPart.java ++++ after/net/minecraft/client/renderer/block/model/BlockPart.java +@@ -17,7 +17,7 @@ + import net.minecraft.util.math.MathHelper; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Vector3f; ++import org.lwjglx.util.vector.Vector3f; + + @SideOnly(Side.CLIENT) + public class BlockPart diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/BlockPartRotation.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/BlockPartRotation.java.patch new file mode 100644 index 000000000..bc6ad3ed3 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/BlockPartRotation.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/renderer/block/model/BlockPartRotation.java ++++ after/net/minecraft/client/renderer/block/model/BlockPartRotation.java +@@ -3,7 +3,7 @@ + import net.minecraft.util.EnumFacing; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Vector3f; ++import org.lwjglx.util.vector.Vector3f; + + @SideOnly(Side.CLIENT) + public class BlockPartRotation diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch index 789ad935e..c54748c56 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch @@ -1,5 +1,18 @@ --- before/net/minecraft/client/renderer/block/model/FaceBakery.java +++ after/net/minecraft/client/renderer/block/model/FaceBakery.java +@@ -8,9 +8,9 @@ + import net.minecraft.util.math.Vec3i; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Matrix4f; +-import org.lwjgl.util.vector.Vector3f; +-import org.lwjgl.util.vector.Vector4f; ++import org.lwjglx.util.vector.Matrix4f; ++import org.lwjglx.util.vector.Vector3f; ++import org.lwjglx.util.vector.Vector4f; + + @SideOnly(Side.CLIENT) + public class FaceBakery @@ -63,15 +63,40 @@ boolean shade ) diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemCameraTransforms.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemCameraTransforms.java.patch index 81aad548e..82e3e30c8 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemCameraTransforms.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemCameraTransforms.java.patch @@ -1,8 +1,11 @@ --- before/net/minecraft/client/renderer/block/model/ItemCameraTransforms.java +++ after/net/minecraft/client/renderer/block/model/ItemCameraTransforms.java -@@ -12,6 +12,9 @@ +@@ -10,8 +10,11 @@ + import net.minecraft.util.math.MathHelper; + import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; - import org.lwjgl.util.vector.Quaternion; +-import org.lwjgl.util.vector.Quaternion; ++import org.lwjglx.util.vector.Quaternion; +/* + * @deprecated use {@link net.minecraftforge.client.model.IPerspectiveAwareModel} instead diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemModelGenerator.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemModelGenerator.java.patch new file mode 100644 index 000000000..6d3278134 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemModelGenerator.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/renderer/block/model/ItemModelGenerator.java ++++ after/net/minecraft/client/renderer/block/model/ItemModelGenerator.java +@@ -11,7 +11,7 @@ + import net.minecraft.util.ResourceLocation; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Vector3f; ++import org.lwjglx.util.vector.Vector3f; + + @SideOnly(Side.CLIENT) + public class ItemModelGenerator diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemTransformVec3f.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemTransformVec3f.java.patch index bca1eb3de..812350a64 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemTransformVec3f.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemTransformVec3f.java.patch @@ -1,8 +1,11 @@ --- before/net/minecraft/client/renderer/block/model/ItemTransformVec3f.java +++ after/net/minecraft/client/renderer/block/model/ItemTransformVec3f.java -@@ -13,9 +13,14 @@ +@@ -11,11 +11,16 @@ + import net.minecraft.util.math.MathHelper; + import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; - import org.lwjgl.util.vector.Vector3f; +-import org.lwjgl.util.vector.Vector3f; ++import org.lwjglx.util.vector.Vector3f; +/* + * @deprecated use {@link net.minecraftforge.client.model.IModelState} and {@link net.minecraftforge.client.model.TRSRTransformation} diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ModelRotation.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ModelRotation.java.patch index 36599d4b4..55327d9e2 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/ModelRotation.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ModelRotation.java.patch @@ -1,7 +1,13 @@ --- before/net/minecraft/client/renderer/block/model/ModelRotation.java +++ after/net/minecraft/client/renderer/block/model/ModelRotation.java -@@ -10,7 +10,7 @@ - import org.lwjgl.util.vector.Vector3f; +@@ -6,11 +6,11 @@ + import net.minecraft.util.math.MathHelper; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Matrix4f; +-import org.lwjgl.util.vector.Vector3f; ++import org.lwjglx.util.vector.Matrix4f; ++import org.lwjglx.util.vector.Vector3f; @SideOnly(Side.CLIENT) -public enum ModelRotation diff --git a/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch b/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch index cf7b44062..f89e11ec1 100644 --- a/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch @@ -56,7 +56,7 @@ + */ + public void preDrawBatch() + { -+ batchBuffer.getBuffer().begin(org.lwjgl.opengl.GL11.GL_QUADS, net.minecraft.client.renderer.vertex.DefaultVertexFormats.BLOCK); ++ batchBuffer.getBuffer().begin(org.lwjglx.opengl.GL11.GL_QUADS, net.minecraft.client.renderer.vertex.DefaultVertexFormats.BLOCK); + drawingBatch = true; + } + @@ -68,17 +68,17 @@ + { + renderEngine.bindTexture(net.minecraft.client.renderer.texture.TextureMap.LOCATION_BLOCKS_TEXTURE); + net.minecraft.client.renderer.RenderHelper.disableStandardItemLighting(); -+ GlStateManager.blendFunc(org.lwjgl.opengl.GL11.GL_SRC_ALPHA, org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA); ++ GlStateManager.blendFunc(org.lwjglx.opengl.GL11.GL_SRC_ALPHA, org.lwjglx.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA); + GlStateManager.enableBlend(); + GlStateManager.disableCull(); + + if (net.minecraft.client.Minecraft.isAmbientOcclusionEnabled()) + { -+ GlStateManager.shadeModel(org.lwjgl.opengl.GL11.GL_SMOOTH); ++ GlStateManager.shadeModel(org.lwjglx.opengl.GL11.GL_SMOOTH); + } + else + { -+ GlStateManager.shadeModel(org.lwjgl.opengl.GL11.GL_FLAT); ++ GlStateManager.shadeModel(org.lwjglx.opengl.GL11.GL_FLAT); + } + + if(pass > 0) diff --git a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch index bf9b9ebb2..e9f1d8054 100644 --- a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch +++ b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch @@ -1,5 +1,18 @@ --- before/net/minecraft/client/settings/GameSettings.java +++ after/net/minecraft/client/settings/GameSettings.java +@@ -41,9 +41,9 @@ + import org.apache.commons.lang3.ArrayUtils; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.input.Keyboard; +-import org.lwjgl.input.Mouse; +-import org.lwjgl.opengl.Display; ++import org.lwjglx.input.Keyboard; ++import org.lwjglx.input.Mouse; ++import org.lwjglx.opengl.Display; + + @SideOnly(Side.CLIENT) + public class GameSettings @@ -69,6 +69,7 @@ } }; diff --git a/patches/minecraft/net/minecraft/client/settings/KeyBinding.java.patch b/patches/minecraft/net/minecraft/client/settings/KeyBinding.java.patch index 8da83aa2a..8b3a3f86e 100644 --- a/patches/minecraft/net/minecraft/client/settings/KeyBinding.java.patch +++ b/patches/minecraft/net/minecraft/client/settings/KeyBinding.java.patch @@ -1,6 +1,13 @@ --- before/net/minecraft/client/settings/KeyBinding.java +++ after/net/minecraft/client/settings/KeyBinding.java -@@ -15,7 +15,7 @@ +@@ -9,13 +9,13 @@ + import net.minecraft.util.IntHashMap; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Keyboard; ++import org.lwjglx.input.Keyboard; + + @SideOnly(Side.CLIENT) public class KeyBinding implements Comparable { private static final Map KEYBIND_ARRAY = Maps.newHashMap(); diff --git a/patches/minecraft/net/minecraft/client/shader/Framebuffer.java.patch b/patches/minecraft/net/minecraft/client/shader/Framebuffer.java.patch index db762620e..ac133938a 100644 --- a/patches/minecraft/net/minecraft/client/shader/Framebuffer.java.patch +++ b/patches/minecraft/net/minecraft/client/shader/Framebuffer.java.patch @@ -11,9 +11,9 @@ + } + else + { -+ OpenGlHelper.glRenderbufferStorage(OpenGlHelper.GL_RENDERBUFFER, org.lwjgl.opengl.EXTPackedDepthStencil.GL_DEPTH24_STENCIL8_EXT, this.framebufferTextureWidth, this.framebufferTextureHeight); -+ OpenGlHelper.glFramebufferRenderbuffer(OpenGlHelper.GL_FRAMEBUFFER, org.lwjgl.opengl.EXTFramebufferObject.GL_DEPTH_ATTACHMENT_EXT, OpenGlHelper.GL_RENDERBUFFER, this.depthBuffer); -+ OpenGlHelper.glFramebufferRenderbuffer(OpenGlHelper.GL_FRAMEBUFFER, org.lwjgl.opengl.EXTFramebufferObject.GL_STENCIL_ATTACHMENT_EXT, OpenGlHelper.GL_RENDERBUFFER, this.depthBuffer); ++ OpenGlHelper.glRenderbufferStorage(OpenGlHelper.GL_RENDERBUFFER, org.lwjglx.opengl.EXTPackedDepthStencil.GL_DEPTH24_STENCIL8_EXT, this.framebufferTextureWidth, this.framebufferTextureHeight); ++ OpenGlHelper.glFramebufferRenderbuffer(OpenGlHelper.GL_FRAMEBUFFER, org.lwjglx.opengl.EXTFramebufferObject.GL_DEPTH_ATTACHMENT_EXT, OpenGlHelper.GL_RENDERBUFFER, this.depthBuffer); ++ OpenGlHelper.glFramebufferRenderbuffer(OpenGlHelper.GL_FRAMEBUFFER, org.lwjglx.opengl.EXTFramebufferObject.GL_STENCIL_ATTACHMENT_EXT, OpenGlHelper.GL_RENDERBUFFER, this.depthBuffer); + } } diff --git a/patches/minecraft/net/minecraft/client/shader/Shader.java.patch b/patches/minecraft/net/minecraft/client/shader/Shader.java.patch new file mode 100644 index 000000000..71b512915 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/shader/Shader.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/shader/Shader.java ++++ after/net/minecraft/client/shader/Shader.java +@@ -12,7 +12,7 @@ + import net.minecraft.client.util.JsonException; + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Matrix4f; ++import org.lwjglx.util.vector.Matrix4f; + + @SideOnly(Side.CLIENT) + public class Shader diff --git a/patches/minecraft/net/minecraft/client/shader/ShaderDefault.java.patch b/patches/minecraft/net/minecraft/client/shader/ShaderDefault.java.patch new file mode 100644 index 000000000..ff8056a59 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/shader/ShaderDefault.java.patch @@ -0,0 +1,11 @@ +--- before/net/minecraft/client/shader/ShaderDefault.java ++++ after/net/minecraft/client/shader/ShaderDefault.java +@@ -2,7 +2,7 @@ + + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.util.vector.Matrix4f; ++import org.lwjglx.util.vector.Matrix4f; + + @SideOnly(Side.CLIENT) + public class ShaderDefault extends ShaderUniform diff --git a/patches/minecraft/net/minecraft/client/shader/ShaderGroup.java.patch b/patches/minecraft/net/minecraft/client/shader/ShaderGroup.java.patch index 91b71a54e..cd3e6aafd 100644 --- a/patches/minecraft/net/minecraft/client/shader/ShaderGroup.java.patch +++ b/patches/minecraft/net/minecraft/client/shader/ShaderGroup.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/shader/ShaderGroup.java +++ after/net/minecraft/client/shader/ShaderGroup.java +@@ -23,7 +23,7 @@ + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.io.IOUtils; +-import org.lwjgl.util.vector.Matrix4f; ++import org.lwjglx.util.vector.Matrix4f; + + @SideOnly(Side.CLIENT) + public class ShaderGroup @@ -55,13 +55,12 @@ public void parseGroup(TextureManager p_152765_1_, ResourceLocation p_152765_2_) throws JsonException, IOException, JsonSyntaxException diff --git a/patches/minecraft/net/minecraft/client/shader/ShaderLoader.java.patch b/patches/minecraft/net/minecraft/client/shader/ShaderLoader.java.patch index 6515b923a..00e84fb7d 100644 --- a/patches/minecraft/net/minecraft/client/shader/ShaderLoader.java.patch +++ b/patches/minecraft/net/minecraft/client/shader/ShaderLoader.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/client/shader/ShaderLoader.java +++ after/net/minecraft/client/shader/ShaderLoader.java +@@ -15,7 +15,7 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.io.IOUtils; + import org.apache.commons.lang3.StringUtils; +-import org.lwjgl.BufferUtils; ++import org.lwjglx.BufferUtils; + + @SideOnly(Side.CLIENT) + public class ShaderLoader @@ -60,7 +60,8 @@ if (shaderloader == null) diff --git a/patches/minecraft/net/minecraft/client/shader/ShaderUniform.java.patch b/patches/minecraft/net/minecraft/client/shader/ShaderUniform.java.patch new file mode 100644 index 000000000..30a91591b --- /dev/null +++ b/patches/minecraft/net/minecraft/client/shader/ShaderUniform.java.patch @@ -0,0 +1,13 @@ +--- before/net/minecraft/client/shader/ShaderUniform.java ++++ after/net/minecraft/client/shader/ShaderUniform.java +@@ -8,8 +8,8 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.BufferUtils; +-import org.lwjgl.util.vector.Matrix4f; ++import org.lwjglx.BufferUtils; ++import org.lwjglx.util.vector.Matrix4f; + + @SideOnly(Side.CLIENT) + public class ShaderUniform diff --git a/patches/minecraft/net/minecraft/util/MouseHelper.java.patch b/patches/minecraft/net/minecraft/util/MouseHelper.java.patch index 8fbcf56fb..27a3d537c 100644 --- a/patches/minecraft/net/minecraft/util/MouseHelper.java.patch +++ b/patches/minecraft/net/minecraft/util/MouseHelper.java.patch @@ -1,5 +1,16 @@ --- before/net/minecraft/util/MouseHelper.java +++ after/net/minecraft/util/MouseHelper.java +@@ -2,8 +2,8 @@ + + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; +-import org.lwjgl.input.Mouse; +-import org.lwjgl.opengl.Display; ++import org.lwjglx.input.Mouse; ++import org.lwjglx.opengl.Display; + + @SideOnly(Side.CLIENT) + public class MouseHelper @@ -13,6 +13,7 @@ public void grabMouseCursor() diff --git a/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch b/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch index 181fba5f6..1cb069c1f 100644 --- a/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch +++ b/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch @@ -1,5 +1,14 @@ --- before/net/minecraft/util/ScreenShotHelper.java +++ after/net/minecraft/util/ScreenShotHelper.java +@@ -21,7 +21,7 @@ + import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +-import org.lwjgl.BufferUtils; ++import org.lwjglx.BufferUtils; + + @SideOnly(Side.CLIENT) + public class ScreenShotHelper @@ -54,10 +54,14 @@ file2 = new File(file1, screenshotName); } diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index aa5b8e88a..da7880f51 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -123,7 +123,7 @@ patcher { client = true taskName 'cleanroomClient' ideaModule "${rootProject.name}.${project.name}.main" - main 'com.cleanroommc.boot.MainClient' + main 'com.cleanroommc.cleanroom.boot.MainClient' workingDirectory project.file('run') environment 'target', 'fmldevclient' @@ -176,7 +176,7 @@ patcher { client false taskName 'cleanroomServer' ideaModule "${rootProject.name}.${project.name}.main" - main 'com.cleanroommc.boot.MainServer' + main 'com.cleanroommc.cleanroom.boot.MainServer' workingDirectory project.file('run') environment 'target', 'fmldevserver' @@ -256,7 +256,6 @@ configurations { dependencies { // LWJGL - compileOnly "com.cleanroommc:lwjglx:1.0.0" installer "com.cleanroommc:lwjglxx:1.1.17" lwjglLibraries[0].each { installer "org.lwjgl:$it:$props.lwjgl_version" diff --git a/src/main/java/com/cleanroommc/boot/Main.java b/src/main/java/com/cleanroommc/cleanroom/boot/Main.java similarity index 99% rename from src/main/java/com/cleanroommc/boot/Main.java rename to src/main/java/com/cleanroommc/cleanroom/boot/Main.java index dec00b733..34e81e75f 100644 --- a/src/main/java/com/cleanroommc/boot/Main.java +++ b/src/main/java/com/cleanroommc/cleanroom/boot/Main.java @@ -1,4 +1,4 @@ -package com.cleanroommc.boot; +package com.cleanroommc.cleanroom.boot; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/cleanroommc/boot/MainClient.java b/src/main/java/com/cleanroommc/cleanroom/boot/MainClient.java similarity index 94% rename from src/main/java/com/cleanroommc/boot/MainClient.java rename to src/main/java/com/cleanroommc/cleanroom/boot/MainClient.java index 300028508..57d88f4b2 100644 --- a/src/main/java/com/cleanroommc/boot/MainClient.java +++ b/src/main/java/com/cleanroommc/cleanroom/boot/MainClient.java @@ -1,4 +1,4 @@ -package com.cleanroommc.boot; +package com.cleanroommc.cleanroom.boot; import java.util.LinkedHashMap; import java.util.Map; diff --git a/src/main/java/com/cleanroommc/boot/MainServer.java b/src/main/java/com/cleanroommc/cleanroom/boot/MainServer.java similarity index 78% rename from src/main/java/com/cleanroommc/boot/MainServer.java rename to src/main/java/com/cleanroommc/cleanroom/boot/MainServer.java index f781f817c..60e933e53 100644 --- a/src/main/java/com/cleanroommc/boot/MainServer.java +++ b/src/main/java/com/cleanroommc/cleanroom/boot/MainServer.java @@ -1,4 +1,4 @@ -package com.cleanroommc.boot; +package com.cleanroommc.cleanroom.boot; public class MainServer extends Main { diff --git a/src/main/java/com/cleanroommc/client/ICU4JInstances.java b/src/main/java/com/cleanroommc/cleanroom/client/ICU4JInstances.java similarity index 92% rename from src/main/java/com/cleanroommc/client/ICU4JInstances.java rename to src/main/java/com/cleanroommc/cleanroom/client/ICU4JInstances.java index 6acdf16a0..912b9c383 100644 --- a/src/main/java/com/cleanroommc/client/ICU4JInstances.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/ICU4JInstances.java @@ -1,4 +1,4 @@ -package com.cleanroommc.client; +package com.cleanroommc.cleanroom.client; import com.ibm.icu.segmenter.LocalizedSegmenter; import com.ibm.icu.segmenter.Segmenter; diff --git a/src/main/java/com/cleanroommc/client/IMEHandler.java b/src/main/java/com/cleanroommc/cleanroom/client/IMEHandler.java similarity index 77% rename from src/main/java/com/cleanroommc/client/IMEHandler.java rename to src/main/java/com/cleanroommc/cleanroom/client/IMEHandler.java index d3dca95d2..49ee6a1e5 100644 --- a/src/main/java/com/cleanroommc/client/IMEHandler.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/IMEHandler.java @@ -1,6 +1,9 @@ -package com.cleanroommc.client; +package com.cleanroommc.cleanroom.client; -import com.cleanroommc.client.ime.*; +import com.cleanroommc.cleanroom.client.ime.DummyIMEHandler; +import com.cleanroommc.cleanroom.client.ime.WaylandIMEhandler; +import com.cleanroommc.cleanroom.client.ime.WindowsIMEHandler; +import com.cleanroommc.cleanroom.client.ime.X11IMEHandler; import net.minecraftforge.common.ForgeModContainer; import net.minecraftforge.fml.common.FMLLog; import org.lwjgl.glfw.GLFW; diff --git a/src/main/java/com/cleanroommc/client/LoadingTracker.java b/src/main/java/com/cleanroommc/cleanroom/client/LoadingTracker.java similarity index 98% rename from src/main/java/com/cleanroommc/client/LoadingTracker.java rename to src/main/java/com/cleanroommc/cleanroom/client/LoadingTracker.java index 4b6a6689e..8dce14f19 100644 --- a/src/main/java/com/cleanroommc/client/LoadingTracker.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/LoadingTracker.java @@ -1,10 +1,10 @@ -package com.cleanroommc.client; +package com.cleanroommc.cleanroom.client; import java.io.*; import java.util.*; -import com.cleanroommc.client.windows.TaskbarApi; -import com.cleanroommc.client.windows.WindowsProperties; +import com.cleanroommc.cleanroom.client.windows.TaskbarApi; +import com.cleanroommc.cleanroom.client.windows.WindowsProperties; import com.sun.jna.platform.win32.WinDef.HWND; import net.minecraft.launchwrapper.Launch; diff --git a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java new file mode 100644 index 000000000..43e68620d --- /dev/null +++ b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java @@ -0,0 +1,10 @@ +package com.cleanroommc.cleanroom.client; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.CLASS) +public @interface Lwjgl3Aware {} diff --git a/src/main/java/com/cleanroommc/client/ime/DummyIMEHandler.java b/src/main/java/com/cleanroommc/cleanroom/client/ime/DummyIMEHandler.java similarity index 78% rename from src/main/java/com/cleanroommc/client/ime/DummyIMEHandler.java rename to src/main/java/com/cleanroommc/cleanroom/client/ime/DummyIMEHandler.java index fcefe048e..f37173af4 100644 --- a/src/main/java/com/cleanroommc/client/ime/DummyIMEHandler.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/ime/DummyIMEHandler.java @@ -1,4 +1,4 @@ -package com.cleanroommc.client.ime; +package com.cleanroommc.cleanroom.client.ime; import java.util.function.Consumer; diff --git a/src/main/java/com/cleanroommc/client/ime/WaylandIMEhandler.java b/src/main/java/com/cleanroommc/cleanroom/client/ime/WaylandIMEhandler.java similarity index 81% rename from src/main/java/com/cleanroommc/client/ime/WaylandIMEhandler.java rename to src/main/java/com/cleanroommc/cleanroom/client/ime/WaylandIMEhandler.java index c1b1fd193..3fb2eac76 100644 --- a/src/main/java/com/cleanroommc/client/ime/WaylandIMEhandler.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/ime/WaylandIMEhandler.java @@ -1,7 +1,7 @@ -package com.cleanroommc.client.ime; +package com.cleanroommc.cleanroom.client.ime; import org.lwjgl.glfw.GLFW; -import org.lwjgl.opengl.Display; +import org.lwjglx.opengl.Display; import java.util.function.Consumer; diff --git a/src/main/java/com/cleanroommc/client/ime/WindowsIMEHandler.java b/src/main/java/com/cleanroommc/cleanroom/client/ime/WindowsIMEHandler.java similarity index 96% rename from src/main/java/com/cleanroommc/client/ime/WindowsIMEHandler.java rename to src/main/java/com/cleanroommc/cleanroom/client/ime/WindowsIMEHandler.java index bcc232584..63c700405 100644 --- a/src/main/java/com/cleanroommc/client/ime/WindowsIMEHandler.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/ime/WindowsIMEHandler.java @@ -1,4 +1,4 @@ -package com.cleanroommc.client.ime; +package com.cleanroommc.cleanroom.client.ime; import com.sun.jna.Native; import com.sun.jna.platform.win32.User32; diff --git a/src/main/java/com/cleanroommc/client/ime/X11IMEHandler.java b/src/main/java/com/cleanroommc/cleanroom/client/ime/X11IMEHandler.java similarity index 81% rename from src/main/java/com/cleanroommc/client/ime/X11IMEHandler.java rename to src/main/java/com/cleanroommc/cleanroom/client/ime/X11IMEHandler.java index dffa14f83..6cb657c44 100644 --- a/src/main/java/com/cleanroommc/client/ime/X11IMEHandler.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/ime/X11IMEHandler.java @@ -1,7 +1,7 @@ -package com.cleanroommc.client.ime; +package com.cleanroommc.cleanroom.client.ime; import org.lwjgl.glfw.GLFW; -import org.lwjgl.opengl.Display; +import org.lwjglx.opengl.Display; import java.util.function.Consumer; diff --git a/src/main/java/com/cleanroommc/client/windows/DwmApi.java b/src/main/java/com/cleanroommc/cleanroom/client/windows/DwmApi.java similarity index 98% rename from src/main/java/com/cleanroommc/client/windows/DwmApi.java rename to src/main/java/com/cleanroommc/cleanroom/client/windows/DwmApi.java index bd57b3bf2..aa5871071 100644 --- a/src/main/java/com/cleanroommc/client/windows/DwmApi.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/windows/DwmApi.java @@ -1,7 +1,6 @@ /// Copyright under MIT https://github.com/LemonCaramel/Mica -package com.cleanroommc.client.windows; +package com.cleanroommc.cleanroom.client.windows; -import com.cleanroommc.client.windows.WindowsProperties; import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Pointer; diff --git a/src/main/java/com/cleanroommc/client/windows/NtDll.java b/src/main/java/com/cleanroommc/cleanroom/client/windows/NtDll.java similarity index 95% rename from src/main/java/com/cleanroommc/client/windows/NtDll.java rename to src/main/java/com/cleanroommc/cleanroom/client/windows/NtDll.java index 121df64d2..8a1156cef 100644 --- a/src/main/java/com/cleanroommc/client/windows/NtDll.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/windows/NtDll.java @@ -1,5 +1,5 @@ /// Copyright under MIT https://github.com/LemonCaramel/Mica -package com.cleanroommc.client.windows; +package com.cleanroommc.cleanroom.client.windows; import com.sun.jna.Library; import com.sun.jna.Native; diff --git a/src/main/java/com/cleanroommc/client/windows/TaskbarApi.java b/src/main/java/com/cleanroommc/cleanroom/client/windows/TaskbarApi.java similarity index 99% rename from src/main/java/com/cleanroommc/client/windows/TaskbarApi.java rename to src/main/java/com/cleanroommc/cleanroom/client/windows/TaskbarApi.java index 60ffdc8e4..0626fef7d 100644 --- a/src/main/java/com/cleanroommc/client/windows/TaskbarApi.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/windows/TaskbarApi.java @@ -1,4 +1,4 @@ -package com.cleanroommc.client.windows; +package com.cleanroommc.cleanroom.client.windows; import com.sun.jna.Function; import com.sun.jna.Native; diff --git a/src/main/java/com/cleanroommc/client/windows/WindowsProperties.java b/src/main/java/com/cleanroommc/cleanroom/client/windows/WindowsProperties.java similarity index 92% rename from src/main/java/com/cleanroommc/client/windows/WindowsProperties.java rename to src/main/java/com/cleanroommc/cleanroom/client/windows/WindowsProperties.java index ef03781ce..7a6772658 100644 --- a/src/main/java/com/cleanroommc/client/windows/WindowsProperties.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/windows/WindowsProperties.java @@ -1,5 +1,5 @@ /// Copyright under MIT https://github.com/LemonCaramel/Mica -package com.cleanroommc.client.windows; +package com.cleanroommc.cleanroom.client.windows; public class WindowsProperties { public static final int MINIMUM_BUILD_NUM = 22000; diff --git a/src/main/java/com/cleanroommc/client/windows/WindowsTheme.java b/src/main/java/com/cleanroommc/cleanroom/client/windows/WindowsTheme.java similarity index 95% rename from src/main/java/com/cleanroommc/client/windows/WindowsTheme.java rename to src/main/java/com/cleanroommc/cleanroom/client/windows/WindowsTheme.java index bf3ffd62e..a9785731a 100644 --- a/src/main/java/com/cleanroommc/client/windows/WindowsTheme.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/windows/WindowsTheme.java @@ -1,4 +1,4 @@ -package com.cleanroommc.client.windows; +package com.cleanroommc.cleanroom.client.windows; import com.sun.jna.platform.win32.Advapi32Util; import com.sun.jna.platform.win32.WinReg; diff --git a/src/main/java/com/cleanroommc/common/CleanroomContainer.java b/src/main/java/com/cleanroommc/cleanroom/common/CleanroomContainer.java similarity index 97% rename from src/main/java/com/cleanroommc/common/CleanroomContainer.java rename to src/main/java/com/cleanroommc/cleanroom/common/CleanroomContainer.java index 7e11a29f3..413d51b0f 100644 --- a/src/main/java/com/cleanroommc/common/CleanroomContainer.java +++ b/src/main/java/com/cleanroommc/cleanroom/common/CleanroomContainer.java @@ -1,4 +1,4 @@ -package com.cleanroommc.common; +package com.cleanroommc.cleanroom.common; import com.google.common.eventbus.EventBus; import net.minecraftforge.fml.common.DummyModContainer; diff --git a/src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java b/src/main/java/com/cleanroommc/cleanroom/common/ConfigAnytimeContainer.java similarity index 95% rename from src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java rename to src/main/java/com/cleanroommc/cleanroom/common/ConfigAnytimeContainer.java index eda4f2bdc..b1a8fae12 100644 --- a/src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java +++ b/src/main/java/com/cleanroommc/cleanroom/common/ConfigAnytimeContainer.java @@ -1,4 +1,4 @@ -package com.cleanroommc.common; +package com.cleanroommc.cleanroom.common; import com.google.common.eventbus.EventBus; import net.minecraftforge.common.ForgeEarlyConfig; diff --git a/src/main/java/com/cleanroommc/common/MixinContainer.java b/src/main/java/com/cleanroommc/cleanroom/common/MixinContainer.java similarity index 95% rename from src/main/java/com/cleanroommc/common/MixinContainer.java rename to src/main/java/com/cleanroommc/cleanroom/common/MixinContainer.java index 870d2cb8f..a62a31cce 100644 --- a/src/main/java/com/cleanroommc/common/MixinContainer.java +++ b/src/main/java/com/cleanroommc/cleanroom/common/MixinContainer.java @@ -1,4 +1,4 @@ -package com.cleanroommc.common; +package com.cleanroommc.cleanroom.common; import com.google.common.eventbus.EventBus; import net.minecraftforge.common.ForgeEarlyConfig; diff --git a/src/main/java/com/cleanroommc/configanytime/ConfigAnytime.java b/src/main/java/com/cleanroommc/cleanroom/configanytime/ConfigAnytime.java similarity index 90% rename from src/main/java/com/cleanroommc/configanytime/ConfigAnytime.java rename to src/main/java/com/cleanroommc/cleanroom/configanytime/ConfigAnytime.java index 895dc6074..df94d478e 100644 --- a/src/main/java/com/cleanroommc/configanytime/ConfigAnytime.java +++ b/src/main/java/com/cleanroommc/cleanroom/configanytime/ConfigAnytime.java @@ -1,4 +1,4 @@ -package com.cleanroommc.configanytime; +package com.cleanroommc.cleanroom.configanytime; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.ConfigManager; diff --git a/src/main/java/com/cleanroommc/hackery/Reflection.java b/src/main/java/com/cleanroommc/cleanroom/hackery/Reflection.java similarity index 97% rename from src/main/java/com/cleanroommc/hackery/Reflection.java rename to src/main/java/com/cleanroommc/cleanroom/hackery/Reflection.java index 3d0e5633c..fef6b52ad 100644 --- a/src/main/java/com/cleanroommc/hackery/Reflection.java +++ b/src/main/java/com/cleanroommc/cleanroom/hackery/Reflection.java @@ -1,4 +1,4 @@ -package com.cleanroommc.hackery; +package com.cleanroommc.cleanroom.hackery; import java.lang.reflect.Field; diff --git a/src/main/java/com/cleanroommc/hackery/ReflectionHackery.java b/src/main/java/com/cleanroommc/cleanroom/hackery/ReflectionHackery.java similarity index 99% rename from src/main/java/com/cleanroommc/hackery/ReflectionHackery.java rename to src/main/java/com/cleanroommc/cleanroom/hackery/ReflectionHackery.java index 3f3f55557..a4b0703e4 100644 --- a/src/main/java/com/cleanroommc/hackery/ReflectionHackery.java +++ b/src/main/java/com/cleanroommc/cleanroom/hackery/ReflectionHackery.java @@ -1,4 +1,4 @@ -package com.cleanroommc.hackery; +package com.cleanroommc.cleanroom.hackery; import net.lenni0451.reflect.Classes; import net.lenni0451.reflect.Fields; diff --git a/src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java b/src/main/java/com/cleanroommc/cleanroom/hackery/enums/EnumHackery.java similarity index 92% rename from src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java rename to src/main/java/com/cleanroommc/cleanroom/hackery/enums/EnumHackery.java index 2ed244ff3..3a94a2b47 100644 --- a/src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java +++ b/src/main/java/com/cleanroommc/cleanroom/hackery/enums/EnumHackery.java @@ -1,4 +1,4 @@ -package com.cleanroommc.hackery.enums; +package com.cleanroommc.cleanroom.hackery.enums; import net.lenni0451.reflect.Enums; diff --git a/src/main/java/com/cleanroommc/loader/LanguageAdapterRegistry.java b/src/main/java/com/cleanroommc/cleanroom/loader/LanguageAdapterRegistry.java similarity index 96% rename from src/main/java/com/cleanroommc/loader/LanguageAdapterRegistry.java rename to src/main/java/com/cleanroommc/cleanroom/loader/LanguageAdapterRegistry.java index 816a8aecb..977b615dc 100644 --- a/src/main/java/com/cleanroommc/loader/LanguageAdapterRegistry.java +++ b/src/main/java/com/cleanroommc/cleanroom/loader/LanguageAdapterRegistry.java @@ -1,4 +1,4 @@ -package com.cleanroommc.loader; +package com.cleanroommc.cleanroom.loader; import com.google.common.collect.Maps; import net.minecraftforge.fml.common.FMLLog; diff --git a/src/main/java/com/cleanroommc/loader/javafix/UUIDFix.java b/src/main/java/com/cleanroommc/cleanroom/loader/javafix/UUIDFix.java similarity index 96% rename from src/main/java/com/cleanroommc/loader/javafix/UUIDFix.java rename to src/main/java/com/cleanroommc/cleanroom/loader/javafix/UUIDFix.java index 67adac91d..d7b27d82b 100644 --- a/src/main/java/com/cleanroommc/loader/javafix/UUIDFix.java +++ b/src/main/java/com/cleanroommc/cleanroom/loader/javafix/UUIDFix.java @@ -1,4 +1,4 @@ -package com.cleanroommc.loader.javafix; +package com.cleanroommc.cleanroom.loader.javafix; import net.minecraftforge.fml.common.FMLLog; diff --git a/src/main/java/com/cleanroommc/loader/scripting/CleanroomScriptEngineManager.java b/src/main/java/com/cleanroommc/cleanroom/loader/scripting/CleanroomScriptEngineManager.java similarity index 94% rename from src/main/java/com/cleanroommc/loader/scripting/CleanroomScriptEngineManager.java rename to src/main/java/com/cleanroommc/cleanroom/loader/scripting/CleanroomScriptEngineManager.java index fd823e7a9..8cba6d6c3 100644 --- a/src/main/java/com/cleanroommc/loader/scripting/CleanroomScriptEngineManager.java +++ b/src/main/java/com/cleanroommc/cleanroom/loader/scripting/CleanroomScriptEngineManager.java @@ -1,4 +1,4 @@ -package com.cleanroommc.loader.scripting; +package com.cleanroommc.cleanroom.loader.scripting; import org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory; diff --git a/src/main/java/com/cleanroommc/common/CleanroomVersion.java b/src/main/java/com/cleanroommc/common/CleanroomVersion.java new file mode 100644 index 000000000..a26cb53a8 --- /dev/null +++ b/src/main/java/com/cleanroommc/common/CleanroomVersion.java @@ -0,0 +1,18 @@ +package com.cleanroommc.common; + +/** + * Use methods to avoid final field references being fixed in bytecode + */ +public class CleanroomVersion { + public static final String VERSION = "0.5.8-alpha"; + public static final String BUILD_VERSION = "0.5.8-alpha+build.3"; + public static final String MOD_ID = "cleanroom"; + + public static String getVersion() { + return VERSION; + } + + public static String getBuildVersion() { + return BUILD_VERSION; + } +} diff --git a/src/main/java/net/minecraftforge/client/CloudRenderer.java b/src/main/java/net/minecraftforge/client/CloudRenderer.java index 8f8911920..01bb8005f 100644 --- a/src/main/java/net/minecraftforge/client/CloudRenderer.java +++ b/src/main/java/net/minecraftforge/client/CloudRenderer.java @@ -25,7 +25,7 @@ import net.minecraftforge.client.resource.IResourceType; import net.minecraftforge.client.resource.VanillaResourceType; -import org.lwjgl.opengl.GL11; +import org.lwjglx.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BufferBuilder; diff --git a/src/main/java/net/minecraftforge/client/EnumHelperClient.java b/src/main/java/net/minecraftforge/client/EnumHelperClient.java index 4117cc0d7..2e1091634 100644 --- a/src/main/java/net/minecraftforge/client/EnumHelperClient.java +++ b/src/main/java/net/minecraftforge/client/EnumHelperClient.java @@ -19,7 +19,7 @@ package net.minecraftforge.client; -import com.cleanroommc.hackery.enums.EnumHackery; +import com.cleanroommc.cleanroom.hackery.enums.EnumHackery; import net.minecraft.client.audio.MusicTicker; import net.minecraft.util.SoundEvent; import net.minecraft.util.Util.EnumOS; diff --git a/src/main/java/net/minecraftforge/client/ForgeClientHandler.java b/src/main/java/net/minecraftforge/client/ForgeClientHandler.java index 8be594616..3aaeea07d 100644 --- a/src/main/java/net/minecraftforge/client/ForgeClientHandler.java +++ b/src/main/java/net/minecraftforge/client/ForgeClientHandler.java @@ -19,11 +19,9 @@ package net.minecraftforge.client; -import com.cleanroommc.client.IMEHandler; -import com.cleanroommc.client.windows.TaskbarApi; -import com.cleanroommc.client.windows.WindowsProperties; -import com.sun.jna.Pointer; -import com.sun.jna.platform.win32.WinDef; +import com.cleanroommc.cleanroom.client.IMEHandler; +import com.cleanroommc.cleanroom.client.windows.TaskbarApi; +import com.cleanroommc.cleanroom.client.windows.WindowsProperties; import net.minecraft.client.gui.GuiChat; import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.client.gui.GuiScreen; @@ -44,7 +42,6 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.oredict.OreDictionary; -import org.lwjgl.glfw.GLFWNativeWin32; import java.util.Arrays; import java.util.List; diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index 53d844edb..a70b0e61e 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -37,11 +37,11 @@ import javax.vecmath.Vector3f; import javax.vecmath.Vector4f; -import com.cleanroommc.client.LoadingTracker; -import com.cleanroommc.client.windows.DwmApi; -import com.cleanroommc.client.windows.NtDll; -import com.cleanroommc.client.windows.TaskbarApi; -import com.cleanroommc.client.windows.WindowsProperties; +import com.cleanroommc.cleanroom.client.LoadingTracker; +import com.cleanroommc.cleanroom.client.windows.DwmApi; +import com.cleanroommc.cleanroom.client.windows.NtDll; +import com.cleanroommc.cleanroom.client.windows.TaskbarApi; +import com.cleanroommc.cleanroom.client.windows.WindowsProperties; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; @@ -147,10 +147,10 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.core.async.ThreadNameCachingStrategy; import org.apache.logging.log4j.core.impl.ReusableLogEventFactory; -import org.lwjgl.BufferUtils; -import org.lwjgl.opengl.Display; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL20; +import org.lwjglx.BufferUtils; +import org.lwjglx.opengl.Display; +import org.lwjglx.opengl.GL11; +import org.lwjglx.opengl.GL20; import java.util.function.Predicate; @@ -531,7 +531,7 @@ public static void postDraw(EnumUsage attrType, VertexFormat format, int element } } - public static void transform(org.lwjgl.util.vector.Vector3f vec, Matrix4f m) + public static void transform(org.lwjglx.util.vector.Vector3f vec, Matrix4f m) { Vector4f tmp = new Vector4f(vec.x, vec.y, vec.z, 1f); m.transform(tmp); diff --git a/src/main/java/net/minecraftforge/client/GuiIngameForge.java b/src/main/java/net/minecraftforge/client/GuiIngameForge.java index aa6269199..e4092d765 100644 --- a/src/main/java/net/minecraftforge/client/GuiIngameForge.java +++ b/src/main/java/net/minecraftforge/client/GuiIngameForge.java @@ -59,7 +59,7 @@ import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.MinecraftForge; -import org.lwjgl.opengl.GL11; +import org.lwjglx.opengl.GL11; /** * a REPLACEMENT of {@link net.minecraft.client.gui.GuiIngame}, there should be no need of using the original {@code GuiIngame} diff --git a/src/main/java/net/minecraftforge/client/event/GuiScreenEvent.java b/src/main/java/net/minecraftforge/client/event/GuiScreenEvent.java index 359395319..ce798b31a 100644 --- a/src/main/java/net/minecraftforge/client/event/GuiScreenEvent.java +++ b/src/main/java/net/minecraftforge/client/event/GuiScreenEvent.java @@ -24,7 +24,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.InventoryEffectRenderer; -import org.lwjgl.input.Mouse; +import org.lwjglx.input.Mouse; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/net/minecraftforge/client/event/MouseEvent.java b/src/main/java/net/minecraftforge/client/event/MouseEvent.java index 8c6ee0fa8..41688a039 100644 --- a/src/main/java/net/minecraftforge/client/event/MouseEvent.java +++ b/src/main/java/net/minecraftforge/client/event/MouseEvent.java @@ -19,7 +19,7 @@ package net.minecraftforge.client.event; -import org.lwjgl.input.Mouse; +import org.lwjglx.input.Mouse; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index b8cee813e..84b099fc5 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -108,7 +108,7 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import com.google.common.collect.Sets; -import org.lwjgl.util.vector.Vector3f; +import org.lwjglx.util.vector.Vector3f; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java b/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java index 893b2e303..5f46cfdd3 100644 --- a/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java +++ b/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java @@ -46,7 +46,7 @@ import net.minecraftforge.common.model.animation.IAnimationStateMachine; import org.apache.commons.lang3.tuple.Pair; -import org.lwjgl.opengl.GL11; +import org.lwjglx.opengl.GL11; /** * ModelBase that works with the Forge model system and animations. diff --git a/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java b/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java index a1535d6e7..e2ef6ac2f 100644 --- a/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java +++ b/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java @@ -19,7 +19,7 @@ package net.minecraftforge.client.model.animation; -import org.lwjgl.opengl.GL11; +import org.lwjglx.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; diff --git a/src/main/java/net/minecraftforge/client/settings/KeyModifier.java b/src/main/java/net/minecraftforge/client/settings/KeyModifier.java index 46fd49968..6fd6f375f 100644 --- a/src/main/java/net/minecraftforge/client/settings/KeyModifier.java +++ b/src/main/java/net/minecraftforge/client/settings/KeyModifier.java @@ -25,7 +25,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.I18n; import net.minecraft.client.settings.GameSettings; -import org.lwjgl.input.Keyboard; +import org.lwjglx.input.Keyboard; public enum KeyModifier { CONTROL { diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index 65f730dfa..cc52ed58d 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -19,7 +19,7 @@ package net.minecraftforge.common; -import com.cleanroommc.common.CleanroomVersion; +import com.cleanroommc.cleanroom.common.CleanroomVersion; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.ICrashCallable; import net.minecraftforge.fml.common.Loader; @@ -31,8 +31,6 @@ import java.util.List; import java.util.Set; -import org.apache.logging.log4j.Level; - import com.google.common.collect.Lists; import net.minecraft.crash.CrashReport; diff --git a/src/main/java/net/minecraftforge/common/model/TRSRTransformation.java b/src/main/java/net/minecraftforge/common/model/TRSRTransformation.java index 7300b1364..84be639c4 100644 --- a/src/main/java/net/minecraftforge/common/model/TRSRTransformation.java +++ b/src/main/java/net/minecraftforge/common/model/TRSRTransformation.java @@ -738,19 +738,19 @@ public boolean equals(Object obj) } @SideOnly(Side.CLIENT) - public static Vector3f toVecmath(org.lwjgl.util.vector.Vector3f vec) + public static Vector3f toVecmath(org.lwjglx.util.vector.Vector3f vec) { return new Vector3f(vec.x, vec.y, vec.z); } @SideOnly(Side.CLIENT) - public static Vector4f toVecmath(org.lwjgl.util.vector.Vector4f vec) + public static Vector4f toVecmath(org.lwjglx.util.vector.Vector4f vec) { return new Vector4f(vec.x, vec.y, vec.z, vec.w); } @SideOnly(Side.CLIENT) - public static Matrix4f toVecmath(org.lwjgl.util.vector.Matrix4f m) + public static Matrix4f toVecmath(org.lwjglx.util.vector.Matrix4f m) { return new Matrix4f( m.m00, m.m10, m.m20, m.m30, @@ -760,21 +760,21 @@ public static Matrix4f toVecmath(org.lwjgl.util.vector.Matrix4f m) } @SideOnly(Side.CLIENT) - public static org.lwjgl.util.vector.Vector3f toLwjgl(Vector3f vec) + public static org.lwjglx.util.vector.Vector3f toLwjgl(Vector3f vec) { - return new org.lwjgl.util.vector.Vector3f(vec.x, vec.y, vec.z); + return new org.lwjglx.util.vector.Vector3f(vec.x, vec.y, vec.z); } @SideOnly(Side.CLIENT) - public static org.lwjgl.util.vector.Vector4f toLwjgl(Vector4f vec) + public static org.lwjglx.util.vector.Vector4f toLwjgl(Vector4f vec) { - return new org.lwjgl.util.vector.Vector4f(vec.x, vec.y, vec.z, vec.w); + return new org.lwjglx.util.vector.Vector4f(vec.x, vec.y, vec.z, vec.w); } @SideOnly(Side.CLIENT) - public static org.lwjgl.util.vector.Matrix4f toLwjgl(Matrix4f m) + public static org.lwjglx.util.vector.Matrix4f toLwjgl(Matrix4f m) { - org.lwjgl.util.vector.Matrix4f r = new org.lwjgl.util.vector.Matrix4f(); + org.lwjglx.util.vector.Matrix4f r = new org.lwjglx.util.vector.Matrix4f(); r.m00 = m.m00; r.m01 = m.m10; r.m02 = m.m20; diff --git a/src/main/java/net/minecraftforge/common/util/EnumHelper.java b/src/main/java/net/minecraftforge/common/util/EnumHelper.java index 8e4231bcc..9ecd3e9ce 100644 --- a/src/main/java/net/minecraftforge/common/util/EnumHelper.java +++ b/src/main/java/net/minecraftforge/common/util/EnumHelper.java @@ -23,7 +23,7 @@ import java.util.*; import java.util.function.BiPredicate; -import com.cleanroommc.hackery.enums.EnumHackery; +import com.cleanroommc.cleanroom.hackery.enums.EnumHackery; import com.google.common.base.Predicate; import com.google.common.collect.Lists; diff --git a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java index 2dc0afd9b..355dfbbd2 100644 --- a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java +++ b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java @@ -120,10 +120,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.message.FormattedMessage; -import org.lwjgl.LWJGLUtil; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.Display; +import org.lwjglx.LWJGLUtil; +import org.lwjglx.input.Keyboard; +import org.lwjglx.input.Mouse; +import org.lwjglx.opengl.Display; import com.google.common.base.CharMatcher; import com.google.common.base.MoreObjects; diff --git a/src/main/java/net/minecraftforge/fml/client/GuiModList.java b/src/main/java/net/minecraftforge/fml/client/GuiModList.java index 0b925267e..6ca7bfdcf 100644 --- a/src/main/java/net/minecraftforge/fml/client/GuiModList.java +++ b/src/main/java/net/minecraftforge/fml/client/GuiModList.java @@ -62,10 +62,10 @@ import net.minecraftforge.fml.common.versioning.ComparableVersion; import static net.minecraft.util.text.TextFormatting.*; -import org.lwjgl.input.Mouse; +import org.lwjglx.input.Mouse; import com.google.common.base.Strings; -import org.lwjgl.opengl.GL11; +import org.lwjglx.opengl.GL11; /** * @author cpw diff --git a/src/main/java/net/minecraftforge/fml/client/GuiMultipleModsErrored.java b/src/main/java/net/minecraftforge/fml/client/GuiMultipleModsErrored.java index a5460ea09..722b8873b 100644 --- a/src/main/java/net/minecraftforge/fml/client/GuiMultipleModsErrored.java +++ b/src/main/java/net/minecraftforge/fml/client/GuiMultipleModsErrored.java @@ -31,7 +31,7 @@ import net.minecraftforge.fml.common.WrongMinecraftVersionException; import net.minecraftforge.fml.common.versioning.ArtifactVersion; import net.minecraftforge.fml.common.versioning.DefaultArtifactVersion; -import org.lwjgl.input.Mouse; +import org.lwjglx.input.Mouse; import java.io.IOException; import java.util.List; diff --git a/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java index 75d9e34b4..f0e9614df 100644 --- a/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java +++ b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java @@ -28,8 +28,8 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraftforge.fml.client.config.GuiUtils; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; +import org.lwjglx.input.Mouse; +import org.lwjglx.opengl.GL11; import java.io.IOException; import java.util.List; diff --git a/src/main/java/net/minecraftforge/fml/client/SplashProgress.java b/src/main/java/net/minecraftforge/fml/client/SplashProgress.java index b9be9be22..de127180e 100644 --- a/src/main/java/net/minecraftforge/fml/client/SplashProgress.java +++ b/src/main/java/net/minecraftforge/fml/client/SplashProgress.java @@ -19,8 +19,8 @@ package net.minecraftforge.fml.client; -import static org.lwjgl.opengl.GL11.*; -import static org.lwjgl.opengl.GL12.*; +import static org.lwjglx.opengl.GL11.*; +import static org.lwjglx.opengl.GL12.*; import java.awt.image.BufferedImage; import java.io.File; @@ -47,6 +47,7 @@ import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; +import com.cleanroommc.cleanroom.client.LoadingTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.GlStateManager; @@ -70,12 +71,12 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; -import org.lwjgl.BufferUtils; -import org.lwjgl.LWJGLException; -import org.lwjgl.opengl.Display; -import org.lwjgl.opengl.Drawable; -import org.lwjgl.opengl.SharedDrawable; -import org.lwjgl.util.glu.GLU; +import org.lwjglx.BufferUtils; +import org.lwjglx.LWJGLException; +import org.lwjglx.opengl.Display; +import org.lwjglx.opengl.Drawable; +import org.lwjglx.opengl.SharedDrawable; +import org.lwjglx.util.glu.GLU; /** * Not a fully fleshed out API, may change in future MC versions. @@ -265,7 +266,7 @@ public void run() while(!done) { framecount++; - com.cleanroommc.client.LoadingTracker.tick(); + LoadingTracker.tick(); ProgressBar first = null, penult = null, last = null; Iterator i = ProgressManager.barIterator(); while(i.hasNext()) diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java b/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java index c225331bd..7316c44c3 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java @@ -44,7 +44,7 @@ import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.eventhandler.Event.Result; -import org.lwjgl.input.Keyboard; +import org.lwjglx.input.Keyboard; import javax.annotation.Nullable; diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java b/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java index a9a705c7f..f213e53e6 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java @@ -39,7 +39,7 @@ import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; -import org.lwjgl.input.Keyboard; +import org.lwjglx.input.Keyboard; /** * This class implements the scrolling list functionality of the config GUI screens. It also provides all the default control handlers diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java b/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java index f6bc67b0c..c012be70c 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java @@ -34,7 +34,7 @@ import static net.minecraftforge.fml.client.config.GuiUtils.UNDO_CHAR; import net.minecraftforge.fml.common.FMLLog; -import org.lwjgl.input.Keyboard; +import org.lwjglx.input.Keyboard; /** * This class is the base screen used for editing an array-type property. It provides a list of array entries for the user to edit. diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java b/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java index 14d2346e2..40ba89c40 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java @@ -31,7 +31,7 @@ import net.minecraftforge.fml.client.config.GuiConfigEntries.ArrayEntry; import net.minecraftforge.fml.common.FMLLog; -import org.lwjgl.input.Keyboard; +import org.lwjglx.input.Keyboard; import static net.minecraftforge.fml.client.config.GuiUtils.INVALID; import static net.minecraftforge.fml.client.config.GuiUtils.VALID; diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java b/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java index bfeea94c2..7bf4e137e 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java @@ -31,7 +31,7 @@ import net.minecraftforge.client.event.RenderTooltipEvent; import net.minecraftforge.common.MinecraftForge; -import org.lwjgl.opengl.GL11; +import org.lwjglx.opengl.GL11; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java index 1701ac9cf..f38545c61 100644 --- a/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java +++ b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java @@ -38,7 +38,7 @@ import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; -import com.cleanroommc.common.CleanroomVersion; +import com.cleanroommc.cleanroom.common.CleanroomVersion; import net.minecraft.crash.CrashReport; import net.minecraft.crash.CrashReportCategory; import net.minecraft.entity.item.EntityItem; @@ -124,7 +124,7 @@ private FMLCommonHandler() registerCrashCallable(new ICrashCallable() { @Override public String call() { - return com.cleanroommc.common.CleanroomVersion.BUILD_VERSION; + return CleanroomVersion.BUILD_VERSION; } @Override diff --git a/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java index dccb788d9..564e8dc89 100644 --- a/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java +++ b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java @@ -37,7 +37,7 @@ import java.util.Properties; import java.util.Set; -import com.cleanroommc.loader.LanguageAdapterRegistry; +import com.cleanroommc.cleanroom.loader.LanguageAdapterRegistry; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.ConfigManager; diff --git a/src/main/java/net/minecraftforge/fml/common/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java index 4126ffc5d..efe91898e 100644 --- a/src/main/java/net/minecraftforge/fml/common/Loader.java +++ b/src/main/java/net/minecraftforge/fml/common/Loader.java @@ -37,10 +37,10 @@ import java.util.Properties; import java.util.Set; -import com.cleanroommc.client.LoadingTracker; -import com.cleanroommc.common.CleanroomContainer; -import com.cleanroommc.common.MixinContainer; -import com.cleanroommc.common.ConfigAnytimeContainer; +import com.cleanroommc.cleanroom.client.LoadingTracker; +import com.cleanroommc.cleanroom.common.CleanroomContainer; +import com.cleanroommc.cleanroom.common.MixinContainer; +import com.cleanroommc.cleanroom.common.ConfigAnytimeContainer; import com.cleanroommc.kirino.KirinoCommonCore; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.ForgeVersion; diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 803e13759..d4742eb87 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -1,86 +1,75 @@ package net.minecraftforge.fml.common.asm.transformers; import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraft.launchwrapper.Launch; +import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Opcodes; import org.objectweb.asm.commons.ClassRemapper; import org.objectweb.asm.commons.Remapper; -import org.objectweb.asm.tree.ClassNode; - -import java.io.IOException; -import java.util.Set; -import java.util.stream.Collectors; public class LWJGLTransformer implements IClassTransformer { + private static final LWJGLXRemapper INSTANCE = new LWJGLXRemapper(); + @Override public byte[] transform(String s, String s1, byte[] bytes) { - if (!s1.startsWith("org.lwjgl.")) { - return bytes; - } - String lwjglxName = s.replace("org.lwjgl.", "org.lwjglx."); - byte[] lwjglxBytes; - try { - lwjglxBytes = Launch.classLoader.testGetClassBytes(lwjglxName); - } catch (IOException e) { - return bytes; - } - if (lwjglxBytes == null) { - return bytes; - } - ClassReader lwjglxReader = new ClassReader(lwjglxBytes); + if (s1.startsWith("net.minecraft") + || s1.startsWith("com.cleanroommc.cleanroom") + || s1.startsWith("com.cleanroommc.kirino") + || s1.startsWith("org.lwjgl")) return bytes; + ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); - ClassVisitor classVisitor = new ClassRemapper(writer, INSTANCE); - lwjglxReader.accept(classVisitor, 0); - lwjglxBytes = writer.toByteArray(); - if (bytes == null) { - return lwjglxBytes; - } + ClassVisitor cv = new LWJGLXClassRemapper(writer, INSTANCE); + reader.accept(cv, 0); + return writer.toByteArray(); + } - ClassNode lwjglNode = new ClassNode(); - ClassReader lwjglReader = new ClassReader(bytes); - lwjglReader.accept(lwjglNode, 0); + private static class LWJGLXClassRemapper extends ClassRemapper { - lwjglxReader = new ClassReader(lwjglxBytes); - ClassNode lwjglxNode = new ClassNode(); - lwjglxReader.accept(lwjglxNode, 0); - Set methods = lwjglNode.methods.stream().map(m -> m.name + m.desc).collect(Collectors.toSet()); - lwjglxNode.methods.forEach(m -> { - if (!methods.contains(m.name + m.desc)) { - lwjglNode.methods.add(m); - } - }); - Set fields = lwjglNode.fields.stream().map(f -> f.name + f.desc).collect(Collectors.toSet()); - lwjglxNode.fields.forEach(f -> { - if (!fields.contains(f.name + f.desc)) { - lwjglNode.fields.add(f); + public LWJGLXClassRemapper(ClassVisitor classVisitor, Remapper remapper) { + super(Opcodes.ASM9, classVisitor, remapper); + } + + @Override + public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { + if (descriptor.equals("Lcom/cleanroommc/cleanroom/client/Lwjgl3Aware;")) { + ((LWJGLXRemapper) remapper).setBypass(true); } - }); - if (s1.equals("org.lwjgl.openal.AL")) { - lwjglNode.methods.removeIf(m -> m.name.equals("destroy")); - lwjglxNode.methods.stream().filter(m -> m.name.equals("destroy")).forEach(m -> lwjglNode.methods.add(m)); + return super.visitAnnotation(descriptor, visible); + } + + @Override + public void visitEnd() { + ((LWJGLXRemapper) remapper).setBypass(false); + super.visitEnd(); } - ClassWriter out = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS); - lwjglNode.accept(out); - return out.toByteArray(); } - static class LWJGLXRemapper extends Remapper { + private static class LWJGLXRemapper extends Remapper { + + private boolean bypass = false; + + public LWJGLXRemapper() { + super(Opcodes.ASM9); + } @Override public String map(String typeName) { if (typeName == null) { return null; } - if (typeName.startsWith("org/lwjglx/")) { - return "org/lwjgl/" + typeName.substring(11); + + if (!bypass && typeName.startsWith("org/lwjgl/")) { + return "org/lwjglx/" + typeName.substring(10); } return typeName; } + public void setBypass(boolean newStatus) { + bypass = newStatus; + } } - } diff --git a/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java b/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java index 568a0f2af..7243abc47 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java @@ -21,7 +21,7 @@ import java.lang.reflect.Field; -import com.cleanroommc.hackery.ReflectionHackery; +import com.cleanroommc.cleanroom.hackery.ReflectionHackery; import net.lenni0451.reflect.Classes; import net.lenni0451.reflect.Fields; import net.minecraft.item.ItemStack; diff --git a/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java index f0268a974..b014818d7 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java @@ -23,8 +23,7 @@ import java.util.Arrays; import java.util.stream.Collectors; -import com.cleanroommc.common.CleanroomVersion; -import net.minecraft.launchwrapper.Launch; +import com.cleanroommc.cleanroom.common.CleanroomVersion; import net.minecraft.launchwrapper.LaunchClassLoader; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.TracingPrintStream; diff --git a/src/main/java/net/minecraftforge/registries/ObjectHolderRef.java b/src/main/java/net/minecraftforge/registries/ObjectHolderRef.java index 194c71b61..f4f03561b 100644 --- a/src/main/java/net/minecraftforge/registries/ObjectHolderRef.java +++ b/src/main/java/net/minecraftforge/registries/ObjectHolderRef.java @@ -24,7 +24,7 @@ import java.util.LinkedList; import java.util.Queue; -import com.cleanroommc.hackery.ReflectionHackery; +import com.cleanroommc.cleanroom.hackery.ReflectionHackery; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.common.FMLLog; diff --git a/src/test/java/com/cleanroommc/hackery/EnumHackeryTest.java b/src/test/java/com/cleanroommc/hackery/EnumHackeryTest.java index 6f7239172..cc14398dd 100644 --- a/src/test/java/com/cleanroommc/hackery/EnumHackeryTest.java +++ b/src/test/java/com/cleanroommc/hackery/EnumHackeryTest.java @@ -1,6 +1,6 @@ package com.cleanroommc.hackery; -import com.cleanroommc.hackery.enums.EnumHackery; +import com.cleanroommc.cleanroom.hackery.enums.EnumHackery; import net.lenni0451.reflect.Constructors; import net.minecraft.item.ItemStack; import org.junit.jupiter.api.Test; From 284fb1095228c071150c289e2e905e8fba20bf40 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Thu, 23 Apr 2026 18:04:30 +0800 Subject: [PATCH 02/27] Fix broken version path --- .../com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy | 2 +- templates/CleanroomVersion.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy b/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy index 564574a17..a8d2c80c7 100644 --- a/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy +++ b/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy @@ -14,7 +14,7 @@ abstract class GenVersionTask extends DefaultTask { @InputFile final File template = new File("${getProject().rootProject.projectDir}/templates/CleanroomVersion.java") @OutputFile - final File versionClass = new File("${getProject().rootProject.projectDir}/src/main/java/com/cleanroommc/common/CleanroomVersion.java") + final File versionClass = new File("${getProject().rootProject.projectDir}/src/main/java/com/cleanroommc/cleanroom/common/CleanroomVersion.java") @TaskAction void action() { versionClass.withWriter { def writer -> diff --git a/templates/CleanroomVersion.java b/templates/CleanroomVersion.java index cad33fa65..b2ef89d91 100644 --- a/templates/CleanroomVersion.java +++ b/templates/CleanroomVersion.java @@ -1,4 +1,4 @@ -package com.cleanroommc.common; +package com.cleanroommc.cleanroom.common; /** * Use methods to avoid final field references being fixed in bytecode From 7d86648f0148f6b414cc519b5c8def146c734520 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Thu, 23 Apr 2026 22:56:32 +0800 Subject: [PATCH 03/27] Update Foundation for new loading rule about lwjgl --- projects/cleanroom/build.gradle | 2 +- .../fml/common/asm/transformers/LWJGLTransformer.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index da7880f51..21ec50831 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.19.7" + installer "top.outlands:foundation:0.20.1" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index d4742eb87..423a95364 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -17,8 +17,7 @@ public class LWJGLTransformer implements IClassTransformer { public byte[] transform(String s, String s1, byte[] bytes) { if (s1.startsWith("net.minecraft") || s1.startsWith("com.cleanroommc.cleanroom") - || s1.startsWith("com.cleanroommc.kirino") - || s1.startsWith("org.lwjgl")) return bytes; + || s1.startsWith("com.cleanroommc.kirino")) return bytes; ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); ClassVisitor cv = new LWJGLXClassRemapper(writer, INSTANCE); From c29c439ca00717c676a9f434ace35f14d59c282d Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Sat, 25 Apr 2026 21:45:57 +0800 Subject: [PATCH 04/27] Remove version file in wrong path --- .../cleanroommc/common/CleanroomVersion.java | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 src/main/java/com/cleanroommc/common/CleanroomVersion.java diff --git a/src/main/java/com/cleanroommc/common/CleanroomVersion.java b/src/main/java/com/cleanroommc/common/CleanroomVersion.java deleted file mode 100644 index a26cb53a8..000000000 --- a/src/main/java/com/cleanroommc/common/CleanroomVersion.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.cleanroommc.common; - -/** - * Use methods to avoid final field references being fixed in bytecode - */ -public class CleanroomVersion { - public static final String VERSION = "0.5.8-alpha"; - public static final String BUILD_VERSION = "0.5.8-alpha+build.3"; - public static final String MOD_ID = "cleanroom"; - - public static String getVersion() { - return VERSION; - } - - public static String getBuildVersion() { - return BUILD_VERSION; - } -} From 519268360a00d778a870d3cf8fe68aab3c025cda Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Sat, 25 Apr 2026 21:58:00 +0800 Subject: [PATCH 05/27] Improve Lwjgl3Aware --- projects/cleanroom/build.gradle | 11 +++++----- .../cleanroom/client/Lwjgl3Aware.java | 4 ++-- .../asm/transformers/LWJGLTransformer.java | 20 +++++++++++++++---- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 21ec50831..bdd7c5811 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.1" + installer "top.outlands:foundation:0.20.2" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' @@ -770,10 +770,11 @@ universalJar { } classpath += "minecraft_server.${props.minecraft_version}.jar" manifest.attributes([ - 'Timestamp' : new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'Main-Class' : 'net.minecraftforge.fml.relauncher.ServerLaunchWrapper', - 'Class-Path' : classpath.toString(), - 'Tweak-Class': 'net.minecraftforge.fml.common.launcher.FMLTweaker' + 'Timestamp' : new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), + 'Main-Class' : 'net.minecraftforge.fml.relauncher.ServerLaunchWrapper', + 'Class-Path' : classpath.toString(), + 'Tweak-Class' : 'net.minecraftforge.fml.common.launcher.FMLTweaker', + 'Lwjgl3-Aware' : 'true' ]) manifest.attributes([ 'Specification-Title' : props.title, diff --git a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java index 43e68620d..ecc39e84e 100644 --- a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java @@ -5,6 +5,6 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Target({ElementType.TYPE}) -@Retention(RetentionPolicy.CLASS) +@Target({ElementType.TYPE, ElementType.PACKAGE}) +@Retention(RetentionPolicy.RUNTIME) public @interface Lwjgl3Aware {} diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 423a95364..25ae367ba 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -1,5 +1,6 @@ package net.minecraftforge.fml.common.asm.transformers; +import com.cleanroommc.cleanroom.client.Lwjgl3Aware; import net.minecraft.launchwrapper.IClassTransformer; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassReader; @@ -9,15 +10,26 @@ import org.objectweb.asm.commons.ClassRemapper; import org.objectweb.asm.commons.Remapper; +import java.util.jar.Manifest; + public class LWJGLTransformer implements IClassTransformer { private static final LWJGLXRemapper INSTANCE = new LWJGLXRemapper(); @Override - public byte[] transform(String s, String s1, byte[] bytes) { - if (s1.startsWith("net.minecraft") - || s1.startsWith("com.cleanroommc.cleanroom") - || s1.startsWith("com.cleanroommc.kirino")) return bytes; + public byte[] transform(String name, String remappedName, byte[] bytes) { + return bytes; + } + + @Override + public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { + if (s1.startsWith("net.minecraft.") + || s1.startsWith("com.cleanroommc.cleanroom.") + || s1.startsWith("com.cleanroommc.kirino.")) return bytes; + if (pkg.isAnnotationPresent(Lwjgl3Aware.class)) return bytes; + var attributes = manifest.getMainAttributes(); + if (attributes.containsKey("Lwjgl3-Aware") + && attributes.getValue("Lwjgl3-Aware").equals("true")) return bytes; ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); ClassVisitor cv = new LWJGLXClassRemapper(writer, INSTANCE); From 8b091c0ad4748888c90942cceeef8f82052893eb Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Sat, 25 Apr 2026 22:01:52 +0800 Subject: [PATCH 06/27] Update Foundation --- projects/cleanroom/build.gradle | 2 +- .../fml/common/asm/transformers/LWJGLTransformer.java | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index bdd7c5811..ebeaf7c17 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.2" + installer "top.outlands:foundation:0.20.3" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 25ae367ba..1df32161e 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -16,11 +16,6 @@ public class LWJGLTransformer implements IClassTransformer { private static final LWJGLXRemapper INSTANCE = new LWJGLXRemapper(); - @Override - public byte[] transform(String name, String remappedName, byte[] bytes) { - return bytes; - } - @Override public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { if (s1.startsWith("net.minecraft.") From 7c11bf0188c3eadfe9e28c844a4a21f8b884df5f Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Sun, 26 Apr 2026 10:23:09 +0800 Subject: [PATCH 07/27] Make Lwjgl3Aware annotation for package --- .../cleanroom/client/Lwjgl3Aware.java | 2 +- .../asm/transformers/LWJGLTransformer.java | 36 ++----------------- 2 files changed, 4 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java index ecc39e84e..96486701e 100644 --- a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java +++ b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java @@ -5,6 +5,6 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Target({ElementType.TYPE, ElementType.PACKAGE}) +@Target({ElementType.PACKAGE}) @Retention(RetentionPolicy.RUNTIME) public @interface Lwjgl3Aware {} diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 1df32161e..e0ccd4e8d 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -2,7 +2,6 @@ import com.cleanroommc.cleanroom.client.Lwjgl3Aware; import net.minecraft.launchwrapper.IClassTransformer; -import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; @@ -18,45 +17,20 @@ public class LWJGLTransformer implements IClassTransformer { @Override public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { - if (s1.startsWith("net.minecraft.") - || s1.startsWith("com.cleanroommc.cleanroom.") - || s1.startsWith("com.cleanroommc.kirino.")) return bytes; + if (s1.startsWith("net.minecraft.")) return bytes; if (pkg.isAnnotationPresent(Lwjgl3Aware.class)) return bytes; var attributes = manifest.getMainAttributes(); if (attributes.containsKey("Lwjgl3-Aware") && attributes.getValue("Lwjgl3-Aware").equals("true")) return bytes; ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); - ClassVisitor cv = new LWJGLXClassRemapper(writer, INSTANCE); + ClassVisitor cv = new ClassRemapper(writer, INSTANCE); reader.accept(cv, 0); return writer.toByteArray(); } - private static class LWJGLXClassRemapper extends ClassRemapper { - - public LWJGLXClassRemapper(ClassVisitor classVisitor, Remapper remapper) { - super(Opcodes.ASM9, classVisitor, remapper); - } - - @Override - public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - if (descriptor.equals("Lcom/cleanroommc/cleanroom/client/Lwjgl3Aware;")) { - ((LWJGLXRemapper) remapper).setBypass(true); - } - return super.visitAnnotation(descriptor, visible); - } - - @Override - public void visitEnd() { - ((LWJGLXRemapper) remapper).setBypass(false); - super.visitEnd(); - } - } - private static class LWJGLXRemapper extends Remapper { - private boolean bypass = false; - public LWJGLXRemapper() { super(Opcodes.ASM9); } @@ -67,15 +41,11 @@ public String map(String typeName) { return null; } - if (!bypass && typeName.startsWith("org/lwjgl/")) { + if (typeName.startsWith("org/lwjgl/")) { return "org/lwjglx/" + typeName.substring(10); } return typeName; } - - public void setBypass(boolean newStatus) { - bypass = newStatus; - } } } From b9e90a8fd86faee05a3d0b8e6fb9b5350163d2db Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 10:47:54 +0800 Subject: [PATCH 08/27] Fix fqcn matching in Foundation --- projects/cleanroom/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index ebeaf7c17..880c0ef63 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.3" + installer "top.outlands:foundation:0.20.5" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' From c8058f391fed1aba3cda92f2ec2b88210899cba1 Mon Sep 17 00:00:00 2001 From: tttsaurus <72607439+tttsaurus@users.noreply.github.com> Date: Tue, 28 Apr 2026 01:51:39 -0400 Subject: [PATCH 09/27] Update kirino to fix lwjgl usage + add lwjgl-freetype --- projects/cleanroom/build.gradle | 2 +- projects/kirino | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 880c0ef63..9d8a2114f 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -95,7 +95,7 @@ ext { lwjglLibraries = [ [ 'lwjgl-glfw', 'lwjgl-jemalloc', 'lwjgl-openal', - 'lwjgl-opengl', 'lwjgl-stb', 'lwjgl-tinyfd', 'lwjgl' + 'lwjgl-opengl', 'lwjgl-stb', 'lwjgl-tinyfd', 'lwjgl-freetype', 'lwjgl' ], [ diff --git a/projects/kirino b/projects/kirino index aaa52d148..057b45b3a 160000 --- a/projects/kirino +++ b/projects/kirino @@ -1 +1 @@ -Subproject commit aaa52d148213e72571b48acf8a145d1d798e79c7 +Subproject commit 057b45b3a69a3c40216454b80bae939a4640310d From 245ee92191b4698ef234e763ea1420b808a901c1 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 16:30:59 +0800 Subject: [PATCH 10/27] Fix lwjgl transformer not working --- projects/cleanroom/build.gradle | 2 +- .../minecraftforge/fml/common/asm/ASMTransformerWrapper.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 9d8a2114f..482759ada 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.5" + installer "top.outlands:foundation:0.20.6" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' diff --git a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java index ef04ffd2d..e40e09e05 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java @@ -27,6 +27,7 @@ import java.net.URLConnection; import java.net.URLStreamHandler; import java.util.Map; +import java.util.jar.Manifest; import net.minecraft.launchwrapper.IClassTransformer; import net.minecraft.launchwrapper.Launch; @@ -242,11 +243,11 @@ public TransformerWrapper() } @Override - public byte[] transform(String name, String transformedName, byte[] basicClass) + public byte[] transform(String name, String transformedName, byte[] basicClass, Package pkg, Manifest manifest) { try { - return parent.transform(name, transformedName, basicClass); + return parent.transform(name, transformedName, basicClass, pkg, manifest); } catch(Throwable e) { From 769908955139e8ca50d65d9a36331c53d11f5c29 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 18:15:03 +0800 Subject: [PATCH 11/27] Fix lwjglx being transfirmed --- projects/cleanroom/build.gradle | 2 +- .../common/asm/transformers/LWJGLTransformer.java | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 482759ada..6c8478ca6 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -256,7 +256,7 @@ configurations { dependencies { // LWJGL - installer "com.cleanroommc:lwjglxx:1.1.17" + installer "com.cleanroommc:lwjglxx:1.1.18" lwjglLibraries[0].each { installer "org.lwjgl:$it:$props.lwjgl_version" runtimeOnly "org.lwjgl:$it::$lwjglArch" diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index e0ccd4e8d..535a39740 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -17,11 +17,15 @@ public class LWJGLTransformer implements IClassTransformer { @Override public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { - if (s1.startsWith("net.minecraft.")) return bytes; - if (pkg.isAnnotationPresent(Lwjgl3Aware.class)) return bytes; - var attributes = manifest.getMainAttributes(); - if (attributes.containsKey("Lwjgl3-Aware") - && attributes.getValue("Lwjgl3-Aware").equals("true")) return bytes; + if (s1.startsWith("net.minecraft.") + || s1.startsWith("com.cleanroommc.cleanroom.") + || s1.startsWith("com.cleanroommc.kirino.")) return bytes; + if (pkg != null && pkg.isAnnotationPresent(Lwjgl3Aware.class)) return bytes; + if (manifest != null) { + var attributes = manifest.getMainAttributes(); + if (attributes.containsKey("Lwjgl3-Aware") + && attributes.getValue("Lwjgl3-Aware").equals("true")) return bytes; + } ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); ClassVisitor cv = new ClassRemapper(writer, INSTANCE); From e2694fa736c5846c472aa2ec3323b5c051ad64c8 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 21:06:04 +0800 Subject: [PATCH 12/27] Fix lwjgl transformer exclude prefix --- .../fml/common/asm/transformers/LWJGLTransformer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 535a39740..d981ef8bc 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -18,13 +18,14 @@ public class LWJGLTransformer implements IClassTransformer { @Override public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { if (s1.startsWith("net.minecraft.") + || s1.startsWith("net.minecraftforge.") || s1.startsWith("com.cleanroommc.cleanroom.") - || s1.startsWith("com.cleanroommc.kirino.")) return bytes; + || s1.startsWith("com.cleanroommc.kirino.") + || s1.startsWith("org.lwjgl.")) return bytes; if (pkg != null && pkg.isAnnotationPresent(Lwjgl3Aware.class)) return bytes; if (manifest != null) { var attributes = manifest.getMainAttributes(); - if (attributes.containsKey("Lwjgl3-Aware") - && attributes.getValue("Lwjgl3-Aware").equals("true")) return bytes; + if ("true".equals(attributes.getValue("Lwjgl3-Aware"))) return bytes; } ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); From 35e566739b9bfb06333a61705231769d7a6d4d42 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 21:16:37 +0800 Subject: [PATCH 13/27] Update Gradle --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c61a118f7..1a704683a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 9c77fcdb5f93cf09222bfb39a4044763a82d395c Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 21:34:05 +0800 Subject: [PATCH 14/27] Move cat to proper path --- .../{cleanroom => }/configanytime/ConfigAnytime.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/com/cleanroommc/{cleanroom => }/configanytime/ConfigAnytime.java (90%) diff --git a/src/main/java/com/cleanroommc/cleanroom/configanytime/ConfigAnytime.java b/src/main/java/com/cleanroommc/configanytime/ConfigAnytime.java similarity index 90% rename from src/main/java/com/cleanroommc/cleanroom/configanytime/ConfigAnytime.java rename to src/main/java/com/cleanroommc/configanytime/ConfigAnytime.java index df94d478e..895dc6074 100644 --- a/src/main/java/com/cleanroommc/cleanroom/configanytime/ConfigAnytime.java +++ b/src/main/java/com/cleanroommc/configanytime/ConfigAnytime.java @@ -1,4 +1,4 @@ -package com.cleanroommc.cleanroom.configanytime; +package com.cleanroommc.configanytime; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.ConfigManager; From 81256dd860cba7aabb7cc9a727bfbeb1daeb5570 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Tue, 28 Apr 2026 21:44:00 +0800 Subject: [PATCH 15/27] Update foundation --- projects/cleanroom/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 6c8478ca6..4182d88d0 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.6" + installer "top.outlands:foundation:0.20.7" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' From 6852f773f56d8d83628d16de1b0a49e8e81f1f89 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 29 Apr 2026 13:18:06 +0800 Subject: [PATCH 16/27] Fix LWJGL transformer handling mixin classes --- projects/cleanroom/build.gradle | 2 +- .../asm/transformers/LWJGLTransformer.java | 57 ++++++++++++++++++- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 4182d88d0..31d3466c9 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -367,7 +367,7 @@ dependencies { installer 'io.github.classgraph:classgraph:4.8.184' // Mixin - installer 'com.cleanroommc:sponge-mixin:0.20.12+mixin.0.8.7' + installer 'com.cleanroommc:sponge-mixin:0.20.13+mixin.0.8.7' installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.5.4') testImplementation platform('org.junit:junit-bom:6.0.2') diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index d981ef8bc..b7b3c6867 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -2,18 +2,27 @@ import com.cleanroommc.cleanroom.client.Lwjgl3Aware; import net.minecraft.launchwrapper.IClassTransformer; +import net.minecraftforge.fml.common.FMLLog; +import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; import org.objectweb.asm.commons.ClassRemapper; import org.objectweb.asm.commons.Remapper; +import org.spongepowered.asm.mixin.Mixin; import java.util.jar.Manifest; public class LWJGLTransformer implements IClassTransformer { private static final LWJGLXRemapper INSTANCE = new LWJGLXRemapper(); + + @Override + public byte[] transform(String name, String remappedName, byte[] bytes) { + return transform(name, remappedName, bytes, null, null); + } @Override public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { @@ -29,12 +38,39 @@ public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest } ClassReader reader = new ClassReader(bytes); ClassWriter writer = new ClassWriter(0); - ClassVisitor cv = new ClassRemapper(writer, INSTANCE); + ClassVisitor cv = new ClassRemapperWithMixinHandle(writer, INSTANCE); reader.accept(cv, 0); return writer.toByteArray(); } + + private static class ClassRemapperWithMixinHandle extends ClassRemapper { + private boolean isMixin = false; + + public ClassRemapperWithMixinHandle(ClassVisitor classVisitor, Remapper remapper) { + super(classVisitor, remapper); + } + + @Override + public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { + if (descriptor.equals(Type.getDescriptor(Mixin.class))) { + INSTANCE.setIsMixin(true); + isMixin = true; + } + return super.visitAnnotation(descriptor, visible); + } + + @Override + public void visitEnd() { + if (isMixin) { + INSTANCE.setIsMixin(false); + } + super.visitEnd(); + } + } private static class LWJGLXRemapper extends Remapper { + + private boolean isMixin; public LWJGLXRemapper() { super(Opcodes.ASM9); @@ -46,11 +82,28 @@ public String map(String typeName) { return null; } - if (typeName.startsWith("org/lwjgl/")) { + if (isMixin) { + if (typeName.contains("org/lwjgl/")) { + return typeName.replace("org/lwjgl/", "org/lwjglx/"); + } + } else if (typeName.startsWith("org/lwjgl/")) { return "org/lwjglx/" + typeName.substring(10); } return typeName; } + + @Override + public Object mapValue(final Object value) { + if (isMixin && value instanceof String string) { + return string.replace("org/lwjgl/", "org/lwjglx/"); + } else { + return super.mapValue(value); + } + } + + public void setIsMixin(boolean value) { + isMixin = value; + } } } From da9edb5a5d48bec06bb62d371eb330c5a54edf9e Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 29 Apr 2026 15:20:50 +0800 Subject: [PATCH 17/27] Fix TransformerWrapper --- .../fml/common/asm/ASMTransformerWrapper.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java index e40e09e05..63575bed3 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; @@ -33,6 +34,7 @@ import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; +import org.jspecify.annotations.NonNull; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.FieldVisitor; @@ -59,8 +61,7 @@ public class ASMTransformerWrapper .build(new CacheLoader<>() { @Override - public byte[] load(String file) throws Exception - { + public byte @NonNull [] load(@NonNull String file) { return makeWrapper(file); } }); @@ -241,6 +242,20 @@ public TransformerWrapper() throw new RuntimeException(e); } } + + @Override + public byte[] transform(String name, String transformedName, byte[] basicClass) + { + + try + { + return parent.transform(name, transformedName, basicClass); + } + catch(Throwable e) + { + throw new TransformerException("Exception in class transformer " + parent + " from coremod " + getCoreMod(), e); + } + } @Override public byte[] transform(String name, String transformedName, byte[] basicClass, Package pkg, Manifest manifest) From 338229eb63744811b2d92dfc24cb9b28db3a7d3f Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 29 Apr 2026 17:45:53 +0800 Subject: [PATCH 18/27] Update Foundation --- projects/cleanroom/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 31d3466c9..1782af9c3 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.7" + installer "top.outlands:foundation:0.20.8" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' From 8cf466fd7cd61a9147ec44283fa41dbc1fdd952a Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 29 Apr 2026 22:46:33 +0800 Subject: [PATCH 19/27] Extra null check in LWJGLTransformer --- .../fml/common/asm/transformers/LWJGLTransformer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index b7b3c6867..6a8a6ffb6 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -52,7 +52,7 @@ public ClassRemapperWithMixinHandle(ClassVisitor classVisitor, Remapper remapper @Override public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - if (descriptor.equals(Type.getDescriptor(Mixin.class))) { + if (descriptor != null && descriptor.equals(Type.getDescriptor(Mixin.class))) { INSTANCE.setIsMixin(true); isMixin = true; } From 8479713bdc05410cb38c915d640ca9a21a1d6065 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 29 Apr 2026 22:50:49 +0800 Subject: [PATCH 20/27] Add logging for inner exception --- .../minecraftforge/fml/common/asm/ASMTransformerWrapper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java index 63575bed3..5d32176cd 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java @@ -34,6 +34,7 @@ import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; +import net.minecraftforge.fml.common.FMLLog; import org.jspecify.annotations.NonNull; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; @@ -253,6 +254,7 @@ public byte[] transform(String name, String transformedName, byte[] basicClass) } catch(Throwable e) { + FMLLog.log.error(e); throw new TransformerException("Exception in class transformer " + parent + " from coremod " + getCoreMod(), e); } } @@ -266,6 +268,7 @@ public byte[] transform(String name, String transformedName, byte[] basicClass, } catch(Throwable e) { + FMLLog.log.error(e); throw new TransformerException("Exception in class transformer " + parent + " from coremod " + getCoreMod(), e); } } From 51315a18b4542f5447cd1d37486764f47f1d782b Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Thu, 30 Apr 2026 09:41:48 +0800 Subject: [PATCH 21/27] Byte null check in LWJGL transformer --- .../minecraftforge/fml/common/asm/ASMTransformerWrapper.java | 3 +-- .../fml/common/asm/transformers/LWJGLTransformer.java | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java index 5d32176cd..ec1dac372 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java @@ -27,6 +27,7 @@ import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; +import java.util.Arrays; import java.util.Map; import java.util.jar.Manifest; @@ -254,7 +255,6 @@ public byte[] transform(String name, String transformedName, byte[] basicClass) } catch(Throwable e) { - FMLLog.log.error(e); throw new TransformerException("Exception in class transformer " + parent + " from coremod " + getCoreMod(), e); } } @@ -268,7 +268,6 @@ public byte[] transform(String name, String transformedName, byte[] basicClass, } catch(Throwable e) { - FMLLog.log.error(e); throw new TransformerException("Exception in class transformer " + parent + " from coremod " + getCoreMod(), e); } } diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 6a8a6ffb6..fe3b7b5d5 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -26,6 +26,7 @@ public byte[] transform(String name, String remappedName, byte[] bytes) { @Override public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { + if (bytes == null) return null; if (s1.startsWith("net.minecraft.") || s1.startsWith("net.minecraftforge.") || s1.startsWith("com.cleanroommc.cleanroom.") From eb379f0f2164e93b706376a7891550b4ef951228 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Thu, 30 Apr 2026 22:03:05 +0800 Subject: [PATCH 22/27] We don't need annotation --- projects/cleanroom/build.gradle | 2 +- .../com/cleanroommc/cleanroom/client/Lwjgl3Aware.java | 10 ---------- .../fml/common/asm/transformers/LWJGLTransformer.java | 6 ------ 3 files changed, 1 insertion(+), 17 deletions(-) delete mode 100644 src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index 1782af9c3..2309d29b2 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -276,7 +276,7 @@ dependencies { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" // Hacks - installer "top.outlands:foundation:0.20.8" + installer "top.outlands:foundation:0.20.10" installer 'net.lenni0451:Reflect:1.6.3' installer 'net.lenni0451.commons:unchecked:1.9.2' installer 'org.javassist:javassist:3.30.2-GA' diff --git a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java b/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java deleted file mode 100644 index 96486701e..000000000 --- a/src/main/java/com/cleanroommc/cleanroom/client/Lwjgl3Aware.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.cleanroommc.cleanroom.client; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target({ElementType.PACKAGE}) -@Retention(RetentionPolicy.RUNTIME) -public @interface Lwjgl3Aware {} diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index fe3b7b5d5..334ce2deb 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -1,8 +1,6 @@ package net.minecraftforge.fml.common.asm.transformers; -import com.cleanroommc.cleanroom.client.Lwjgl3Aware; import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraftforge.fml.common.FMLLog; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; @@ -28,11 +26,7 @@ public byte[] transform(String name, String remappedName, byte[] bytes) { public byte[] transform(String s, String s1, byte[] bytes, Package pkg, Manifest manifest) { if (bytes == null) return null; if (s1.startsWith("net.minecraft.") - || s1.startsWith("net.minecraftforge.") - || s1.startsWith("com.cleanroommc.cleanroom.") - || s1.startsWith("com.cleanroommc.kirino.") || s1.startsWith("org.lwjgl.")) return bytes; - if (pkg != null && pkg.isAnnotationPresent(Lwjgl3Aware.class)) return bytes; if (manifest != null) { var attributes = manifest.getMainAttributes(); if ("true".equals(attributes.getValue("Lwjgl3-Aware"))) return bytes; From 2a6af8405d59580a2206b6a260d21686719b7741 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Sat, 2 May 2026 20:28:16 +0800 Subject: [PATCH 23/27] Improve lwjgl transformer to ma value by default --- .../asm/transformers/LWJGLTransformer.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 334ce2deb..8bb9a22e3 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -78,9 +78,7 @@ public String map(String typeName) { } if (isMixin) { - if (typeName.contains("org/lwjgl/")) { - return typeName.replace("org/lwjgl/", "org/lwjglx/"); - } + return typeName.replace("org/lwjgl/", "org/lwjglx/"); } else if (typeName.startsWith("org/lwjgl/")) { return "org/lwjglx/" + typeName.substring(10); } @@ -90,11 +88,19 @@ public String map(String typeName) { @Override public Object mapValue(final Object value) { - if (isMixin && value instanceof String string) { - return string.replace("org/lwjgl/", "org/lwjglx/"); - } else { - return super.mapValue(value); + if (value == null) { + return null; + } + + if (value instanceof String str) { + if (isMixin) { + return str.replace("org/lwjgl/", "org/lwjglx/"); + } else if (str.startsWith("org/lwjgl/")) { + return "org/lwjglx/" + str.substring(10); + } } + + return value; } public void setIsMixin(boolean value) { From ebfcd361d16b2efe5ba7c143531f82e9150108fb Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 6 May 2026 10:53:18 +0800 Subject: [PATCH 24/27] Not remap string value by default --- .../fml/common/asm/transformers/LWJGLTransformer.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java index 8bb9a22e3..1bed2c972 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/LWJGLTransformer.java @@ -95,12 +95,10 @@ public Object mapValue(final Object value) { if (value instanceof String str) { if (isMixin) { return str.replace("org/lwjgl/", "org/lwjglx/"); - } else if (str.startsWith("org/lwjgl/")) { - return "org/lwjglx/" + str.substring(10); } } - return value; + return super.mapValue(value); } public void setIsMixin(boolean value) { From 92085a9febdca3bb2735ea58d923a365a15c19ff Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 6 May 2026 11:50:58 +0800 Subject: [PATCH 25/27] Trim FontRenderer patch --- .../minecraft/client/gui/FontRenderer.java.patch | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch index 68d32f4f4..43ad4d2a2 100644 --- a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch @@ -1,18 +1,5 @@ --- before/net/minecraft/client/gui/FontRenderer.java +++ after/net/minecraft/client/gui/FontRenderer.java -@@ -1,11 +1,11 @@ - package net.minecraft.client.gui; - -+import com.cleanroommc.cleanroom.client.ICU4JInstances; - import com.ibm.icu.text.ArabicShaping; - import com.ibm.icu.text.ArabicShapingException; - import com.ibm.icu.text.Bidi; - import java.awt.image.BufferedImage; - import java.io.IOException; --import java.util.Arrays; - import java.util.List; - import java.util.Locale; - import java.util.Random; @@ -56,7 +56,7 @@ this.locationFontTexture = location; this.renderEngine = textureManagerIn; @@ -153,7 +140,7 @@ + { + return java.util.Collections.singletonList(""); + } -+ com.ibm.icu.segmenter.Segments segments = ICU4JInstances.SEGMENTER.segment(str); ++ com.ibm.icu.segmenter.Segments segments = com.cleanroommc.cleanroom.client.ICU4JInstances.SEGMENTER.segment(str); + List list = new java.util.ArrayList<>(); + StringBuilder line = new StringBuilder(); + StringBuilder seg = new StringBuilder(); From 09bd16ee576b92ae0e6a7761bce64f4e2d7284ad Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 6 May 2026 12:05:32 +0800 Subject: [PATCH 26/27] Fix LoadingTracker package change --- .../java/net/minecraftforge/client/model/ModelLoader.java | 7 ++++--- .../java/net/minecraftforge/fml/common/LoadController.java | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index 96c7edf39..3866f2c6f 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -31,6 +31,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import com.cleanroommc.cleanroom.client.LoadingTracker; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; @@ -164,7 +165,7 @@ public IRegistry setupModelRegistry() HashMultimap models = HashMultimap.create(); Multimaps.invertFrom(Multimaps.forMap(stateModels), models); - ProgressBar bakeBar = ProgressManager.push("ModelLoader: baking", models.keySet().size(), false, com.cleanroommc.client.LoadingTracker.Phase.RELOAD_BAKING); + ProgressBar bakeBar = ProgressManager.push("ModelLoader: baking", models.keySet().size(), false, LoadingTracker.Phase.RELOAD_BAKING); for(IModel model : models.keySet()) { @@ -212,7 +213,7 @@ protected void loadBlocks() .filter(block -> block.getRegistryName() != null) .sorted(Comparator.comparing(b -> b.getRegistryName().toString())) .collect(Collectors.toList()); - ProgressBar blockBar = ProgressManager.push("ModelLoader: blocks", blocks.size(), false, com.cleanroommc.client.LoadingTracker.Phase.RELOAD_BLOCKS); + ProgressBar blockBar = ProgressManager.push("ModelLoader: blocks", blocks.size(), false, LoadingTracker.Phase.RELOAD_BLOCKS); BlockStateMapper mapper = this.blockModelShapes.getBlockStateMapper(); @@ -282,7 +283,7 @@ protected void loadItemModels() .sorted(Comparator.comparing(i -> i.getRegistryName().toString())) .collect(Collectors.toList()); - ProgressBar itemBar = ProgressManager.push("ModelLoader: items", items.size(), false, com.cleanroommc.client.LoadingTracker.Phase.RELOAD_ITEMS); + ProgressBar itemBar = ProgressManager.push("ModelLoader: items", items.size(), false, LoadingTracker.Phase.RELOAD_ITEMS); for(Item item : items) { itemBar.step(item.getRegistryName().toString()); diff --git a/src/main/java/net/minecraftforge/fml/common/LoadController.java b/src/main/java/net/minecraftforge/fml/common/LoadController.java index e1bfeeff2..83f62f96a 100644 --- a/src/main/java/net/minecraftforge/fml/common/LoadController.java +++ b/src/main/java/net/minecraftforge/fml/common/LoadController.java @@ -19,6 +19,7 @@ package net.minecraftforge.fml.common; +import com.cleanroommc.cleanroom.client.LoadingTracker; import com.google.common.base.Strings; import com.google.common.base.Throwables; import com.google.common.collect.*; @@ -289,7 +290,7 @@ public void propogateStateMessage(FMLEvent stateEvent) { modObjectList = buildModObjectList(); } - ProgressBar bar = ProgressManager.push(stateEvent.description(), activeModList.size(), true, com.cleanroommc.client.LoadingTracker.phaseForEventDescription(stateEvent.description())); + ProgressBar bar = ProgressManager.push(stateEvent.description(), activeModList.size(), true, LoadingTracker.phaseForEventDescription(stateEvent.description())); for (ModContainer mc : activeModList) { bar.step(mc.getName()); From a3c15ec79629d707e3b991c4a960f72640a3970f Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Wed, 6 May 2026 21:11:44 +0800 Subject: [PATCH 27/27] Random Cleanup --- .../client/model/ModelLoader.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index 3866f2c6f..e144a174c 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -212,7 +212,7 @@ protected void loadBlocks() List blocks = StreamSupport.stream(Block.REGISTRY.spliterator(), false) .filter(block -> block.getRegistryName() != null) .sorted(Comparator.comparing(b -> b.getRegistryName().toString())) - .collect(Collectors.toList()); + .toList(); ProgressBar blockBar = ProgressManager.push("ModelLoader: blocks", blocks.size(), false, LoadingTracker.Phase.RELOAD_BLOCKS); BlockStateMapper mapper = this.blockModelShapes.getBlockStateMapper(); @@ -281,7 +281,7 @@ protected void loadItemModels() List items = StreamSupport.stream(Item.REGISTRY.spliterator(), false) .filter(item -> item.getRegistryName() != null) .sorted(Comparator.comparing(i -> i.getRegistryName().toString())) - .collect(Collectors.toList()); + .toList(); ProgressBar itemBar = ProgressManager.push("ModelLoader: items", items.size(), false, LoadingTracker.Phase.RELOAD_ITEMS); for(Item item : items) @@ -493,9 +493,8 @@ private IBakedModel bakeNormal(ModelBlock model, IModelState perState, final IMo @Override public List getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) { - if(state instanceof IExtendedBlockState) + if(state instanceof IExtendedBlockState exState) { - IExtendedBlockState exState = (IExtendedBlockState)state; if(exState.getUnlistedNames().contains(Properties.AnimationProperty)) { IModelState newState = exState.getValue(Properties.AnimationProperty); @@ -676,7 +675,7 @@ public WeightedRandomModel(ResourceLocation parent, VariantList variants) throws builder.add(Pair.of(model, new ModelStateComposition(v.getState(), modelDefaultState))); } - if (models.size() == 0) //If all variants are missing, add one with the missing model and default rotation. + if (models.isEmpty()) //If all variants are missing, add one with the missing model and default rotation. { // FIXME: log this? IModel missing = ModelLoaderRegistry.getMissingModel(); @@ -717,7 +716,7 @@ public IBakedModel bake(IModelState state, VertexFormat format, Function textures) } } - protected IModel getMissingModel() + IModel getMissingModel() { if (missingModel == null) { @@ -962,9 +961,8 @@ public void onPostBakeEvent(IRegistry modelR for(Map.Entry entry : loadingExceptions.entrySet()) { // ignoring pure ResourceLocation arguments, all things we care about pass ModelResourceLocation - if(entry.getKey() instanceof ModelResourceLocation) + if(entry.getKey() instanceof ModelResourceLocation location) { - ModelResourceLocation location = (ModelResourceLocation)entry.getKey(); IBakedModel model = modelRegistry.getObject(location); if(model == null || model == missingModel || model instanceof FancyMissingModel.BakedModel) { @@ -1003,9 +1001,8 @@ public void onPostBakeEvent(IRegistry modelR } } } - if(entry.getValue() instanceof ItemLoadingException) + if(entry.getValue() instanceof ItemLoadingException ex) { - ItemLoadingException ex = (ItemLoadingException)entry.getValue(); FMLLog.log.error("{}, normal location exception: ", errorMsg, ex.normalException); FMLLog.log.error("{}, blockstate location exception: ", errorMsg, ex.blockstateException); } @@ -1237,8 +1234,7 @@ public IBakedModel bake(IModelState state, VertexFormat format, Function