Skip to content

Commit

Permalink
Merge branch 'experimental/foundation'
Browse files Browse the repository at this point in the history
  • Loading branch information
KasumiNova committed Oct 7, 2024
2 parents 33ad2c9 + 898bb0f commit fd0d3d4
Show file tree
Hide file tree
Showing 37 changed files with 1,660 additions and 130 deletions.
101 changes: 43 additions & 58 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -437,91 +437,76 @@ project(':cleanroom') {
installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated"

//installer "com.cleanroommc:bouncepad:$props.bouncepad_version"
installer "top.outlands:foundation:0.13.6"
installer 'org.burningwave:jvm-driver:8.15.0'
installer 'io.github.toolfactory:jvm-driver:9.7.0'
installer "top.outlands:foundation:0.13.11"
installer 'org.burningwave:jvm-driver:8.16.1'
installer 'io.github.toolfactory:jvm-driver:9.7.1'
installer 'io.github.toolfactory:narcissus:1.0.7'
installer 'org.javassist:javassist:3.30.2-GA'
installer "zone.rong:imaginebreaker:2.1"

installer 'com.ibm.icu:icu4j:75.1'

installer 'org.jline:jline:3.25.0'
// TODO: Move scala away from being defaulted when installing (download on-demand?)
/*
installer 'org.scala-lang:scala-actors-migration_2.11:1.1.0'
installer 'org.scala-lang:scala-compiler:2.11.1'
// We change the version so old installs don't break, as our clone of the jar is different the maven central
installer 'org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2_mc'
installer 'org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2_mc'
installer 'org.scala-lang:scala-library:2.11.1'
installer 'org.scala-lang:scala-parser-combinators_2.11:1.0.1'
installer 'org.scala-lang:scala-reflect:2.11.1'
installer 'org.scala-lang:scala-swing_2.11:1.0.1'
installer 'org.scala-lang:scala-xml_2.11:1.0.2'
installer 'com.typesafe.akka:akka-actor_2.12:2.8.5'
installer 'com.typesafe:config:1.4.3'
*/
installer 'org.jline:jline:3.27.0'
installer 'org.jline:jline-native:3.27.0'

installer 'lzma:lzma:0.0.1'
installer 'java3d:vecmath:1.5.2'
installer 'net.sf.trove4j:trove4j:3.0.3'
installer 'org.apache.maven:maven-artifact:3.9.5'
installer 'org.apache.maven:maven-artifact:3.9.7'
installer 'net.sf.jopt-simple:jopt-simple:5.0.4'
installer 'org.apache.commons:commons-lang3:3.14.0'
installer 'org.apache.commons:commons-compress:1.26.1'
installer 'org.apache.commons:commons-lang3:3.17.0'
installer 'org.apache.commons:commons-compress:1.27.1'
installer 'org.apache.httpcomponents:httpclient:4.5.14'
installer 'org.apache.httpcomponents:httpcore:4.4.16'
installer 'com.github.oshi:oshi-core:6.5.0'
installer 'net.java.dev.jna:jna:5.14.0'
installer 'net.java.dev.jna:jna-platform:5.14.0'
installer 'it.unimi.dsi:fastutil:8.5.13'
installer 'commons-codec:commons-codec:1.16.0'
installer 'commons-io:commons-io:2.16.1'
installer 'commons-logging:commons-logging:1.3.1'
installer 'com.google.guava:guava:33.1.0-jre'
installer 'com.github.oshi:oshi-core:6.6.4'
installer 'net.java.dev.jna:jna:5.15.0'
installer 'net.java.dev.jna:jna-platform:5.15.0'
installer 'it.unimi.dsi:fastutil:8.5.14'
installer 'commons-codec:commons-codec:1.17.1'
installer 'commons-io:commons-io:2.17.0'
installer 'commons-logging:commons-logging:1.3.4'
installer 'com.google.guava:guava:33.3.0-jre'
installer 'com.google.guava:failureaccess:1.0.2'
installer 'com.google.code.gson:gson:2.10.1'
installer 'com.google.code.gson:gson:2.11.0'
installer 'com.google.code.findbugs:jsr305:3.0.2'

// Netty
installer 'io.netty:netty-codec:4.1.109.Final'
installer 'io.netty:netty-buffer:4.1.109.Final'
installer 'io.netty:netty-common:4.1.109.Final'
installer 'io.netty:netty-handler:4.1.109.Final'
installer 'io.netty:netty-resolver:4.1.109.Final'
installer 'io.netty:netty-transport:4.1.109.Final'
installer 'io.netty:netty-transport-native-unix-common:4.1.109.Final'
installer 'io.netty:netty-transport-classes-epoll:4.1.109.Final'
installer 'io.netty:netty-transport-native-epoll:4.1.109.Final'
installer 'io.netty:netty-codec-http:4.1.109.Final'
installer 'io.netty:netty-codec-http2:4.1.109.Final'
installer 'io.netty:netty-codec-dns:4.1.109.Final'
installer 'io.netty:netty-resolver-dns:4.1.109.Final'
installer "io.netty:netty-codec:$props.netty_version"
installer "io.netty:netty-buffer:$props.netty_version"
installer "io.netty:netty-common:$props.netty_version"
installer "io.netty:netty-handler:$props.netty_version"
installer "io.netty:netty-resolver:$props.netty_version"
installer "io.netty:netty-transport:$props.netty_version"
installer "io.netty:netty-transport-native-unix-common:$props.netty_version"
installer "io.netty:netty-transport-classes-epoll:$props.netty_version"
installer "io.netty:netty-transport-native-epoll:$props.netty_version"
installer "io.netty:netty-codec-http:$props.netty_version"
installer "io.netty:netty-codec-http2:$props.netty_version"
installer "io.netty:netty-codec-dns:$props.netty_version"
installer "io.netty:netty-resolver-dns:$props.netty_version"

// installer 'io.netty:netty-all:4.1.93.Final'

// TODO: Unpin in 1.18.1 or when Mojang bumps the Log4J version
installer 'org.apache.logging.log4j:log4j-api:2.23.1'
installer 'org.apache.logging.log4j:log4j-core:2.23.1'
installer 'org.apache.logging.log4j:log4j-slf4j2-impl:2.23.1'
installer 'org.slf4j:slf4j-api:2.0.13'
installer 'jakarta.annotation:jakarta.annotation-api:2.1.1'
installer 'org.apache.logging.log4j:log4j-api:2.24.0'
installer 'org.apache.logging.log4j:log4j-core:2.24.0'
installer 'org.apache.logging.log4j:log4j-slf4j2-impl:2.24.0'
installer 'org.slf4j:slf4j-api:2.0.16'
installer 'jakarta.annotation:jakarta.annotation-api:3.0.0'
installer 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
installer 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.1'
installer 'jakarta.activation:jakarta.activation-api:2.1.2'
installer 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.2'
installer 'jakarta.activation:jakarta.activation-api:2.1.3'
installer 'org.glassfish.corba:glassfish-corba-omgapi:4.2.5'
installer 'org.openjdk.nashorn:nashorn-core:15.4'

// Mixin
installer 'com.cleanroommc:sponge-mixin:0.19.7+mixin.0.8.5'
installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.3.6')
installer 'com.cleanroommc:sponge-mixin:0.20.6+mixin.0.8.7'
installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.4.1')

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
testImplementation 'org.junit.vintage:junit-vintage-engine:5.10.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.0'
testImplementation 'org.junit.vintage:junit-vintage-engine:5.11.0'
testImplementation 'org.opentest4j:opentest4j:1.3.0' // Needed for junit 5
testImplementation 'org.hamcrest:hamcrest:2.2' // Needs advanced matching for list order
testImplementation 'org.hamcrest:hamcrest:3.0' // Needs advanced matching for list order

// CatServer
installer 'com.googlecode.json-simple:json-simple:1.1.1'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ class Util {
"https://maven.minecraftforge.net/",
"https://repo.maven.apache.org/maven2/",
"https://libraries.minecraft.net/",
"https://maven.outlands.top/releases/"
"https://maven.arcseekers.com/releases/"
]
try {
return urlList.stream().map(original -> original + path)
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ installer_tools_version = 1.4.1
# Libraries
asm_version = 9.7
asm_deprecated = 7.1
bouncepad_version = 0.4.40-cursed
netty_version = 4.1.113.Final
lwjgl_version = 3.3.4-27-CLEANROOM

# Sets default memory used for Gradle commands. Can be overridden by user or command line properties.
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@
{
p_78273_1_ = p_78273_1_.substring(0, p_78273_1_.length() - 1);
}
@@ -725,9 +738,95 @@
@@ -725,9 +738,96 @@

public List<String> func_78271_c(String p_78271_1_, int p_78271_2_)
{
Expand All @@ -225,6 +225,7 @@
+ list.add(line.toString());
+ fed = i + 1;
+ line.delete(0, line.length()).append(format);
+ prevFormat = format.length();
+ lineWidth = 0;
+ widths[0] = lineWidth;
+ formats[0] = format.toString();
Expand Down Expand Up @@ -264,7 +265,7 @@
+ }
+ widths[i - fed] = lineWidth;
+ formats[i - fed] = format.toString();
+ if (lineWidth >= p_78271_2_) {
+ if (lineWidth > p_78271_2_) {
+ if (BreakIteratorHolder.BREAK_ITERATOR.isBoundary(i)) {
+ icui = i;
+ } else {
Expand All @@ -278,7 +279,7 @@
+ lineWidth = func_78263_a(current);
+ } else {
+ d = icui - fed;
+ if (line.charAt(d + prevFormat - 1) == '§') d++;
+ if (line.charAt(d + prevFormat - 2) == '§') d++;
+ list.add(line.substring(0, d + prevFormat));
+ temp = line.substring(d + prevFormat);
+ fed += d;
Expand All @@ -296,15 +297,15 @@
String func_78280_d(String p_78280_1_, int p_78280_2_)
{
int i = this.func_78259_e(p_78280_1_, p_78280_2_);
@@ -746,6 +845,7 @@
@@ -746,6 +846,7 @@
}
}

+ @Deprecated
private int func_78259_e(String p_78259_1_, int p_78259_2_)
{
int i = p_78259_1_.length();
@@ -844,6 +944,26 @@
@@ -844,6 +945,26 @@
public boolean func_78260_a()
{
return this.field_78294_m;
Expand Down
13 changes: 3 additions & 10 deletions patches/minecraft/net/minecraft/crash/CrashReport.java.patch
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
--- before/net/minecraft/crash/CrashReport.java
+++ after/net/minecraft/crash/CrashReport.java
@@ -9,18 +9,26 @@
import java.io.Writer;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
+import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
@@ -13,6 +13,9 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
Expand All @@ -14,10 +9,8 @@
+import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import net.minecraft.util.ReportedException;
import net.minecraft.world.gen.layer.IntCache;
+import net.minecraftforge.fml.relauncher.MixinBooterPlugin;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.io.IOUtils;
@@ -21,6 +24,9 @@
import org.apache.commons.lang3.ArrayUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
Expand All @@ -27,7 +20,7 @@

public class CrashReport
{
@@ -28,7 +36,7 @@
@@ -28,7 +34,7 @@
private final String field_71513_a;
private final Throwable field_71511_b;
private final CrashReportCategory field_85061_c = new CrashReportCategory(this, "System Details");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.cleanroommc.common;

import com.google.common.eventbus.EventBus;
import net.minecraftforge.common.ForgeEarlyConfig;
import net.minecraftforge.fml.common.DummyModContainer;
import net.minecraftforge.fml.common.LoadController;
import net.minecraftforge.fml.common.ModMetadata;
Expand All @@ -14,7 +15,7 @@ public ConfigAnytimeContainer() {
meta.modId = "configanytime";
meta.name = "ConfigAnytime";
meta.description = "Allows Forge configurations to be setup at any point in time.";
meta.version = "3.0";
meta.version = ForgeEarlyConfig.CONFIG_ANY_TIME_VERSION;
meta.authorList.add("Rongmario");
}

Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import jdk.internal.reflect.ReflectionFactory;
import net.minecraftforge.fml.common.FMLLog;
import org.apache.commons.lang3.ArrayUtils;
import top.outlands.foundation.boot.JVMDriverHolder;

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
Expand Down Expand Up @@ -77,7 +78,7 @@ public static <T extends Enum<T>> T addEnumEntry(Class<T> enumClass, String enum
return addEnumEntry(enumClass, enumName, new Class[0], new Object[0]);
}


@SuppressWarnings("unchecked")
public static <T extends Enum<T>> T addEnumEntry(Class<T> enumClass, String enumName, Class<?>[] parameterTypes, Object[] parameterValues) {
if (parameterTypes.length != parameterValues.length) {
throw new IllegalArgumentException("The amount of parameter types must be the same as the parameter values.");
Expand All @@ -89,7 +90,7 @@ public static <T extends Enum<T>> T addEnumEntry(Class<T> enumClass, String enum
MethodHandle handle = MethodHandles.lookup().unreflectConstructor(constructor);
Method m = enumClass.getMethod("values");
Object o = m.invoke(enumClass);
T instance = (T) handle.invokeWithArguments(ArrayUtils.addAll(new Object[]{enumName, ((Object[]) o).length}, parameterValues));
T instance = (T) handle.withVarargs(false).invokeWithArguments(ArrayUtils.addAll(new Object[]{enumName, ((Object[]) o).length}, parameterValues));

Field nameField = Enum.class.getDeclaredField("name");
nameField.setAccessible(true);
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/net/minecraftforge/common/ForgeEarlyConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,13 @@ public class ForgeEarlyConfig {
public static boolean OPENGL_SRGB_CONTEXT = false;
public static boolean OPENGL_DOUBLEBUFFER = true;
public static boolean OPENGL_CONTEXT_NO_ERROR = false;
@Config.Comment("Only use this if you have custom glfw natives")
public static boolean FORCE_WAYLAND = false;
public static boolean DECORATED = true;
public static boolean INPUT_INVERT_WHEEL = false;
public static double INPUT_SCROLL_SPEED = 1.0;
public static String X11_CLASS_NAME = "minecraft";
public static String COCOA_FRAME_NAME = "minecraft";
public static String CONFIG_ANY_TIME_VERSION = "3.0";
public static String[] LOADING_PLUGIN_BLACKLIST = new String[] { "com.cleanroommc.configanytime.ConfigAnytimePlugin", "zone.rong.mixinbooter.MixinBooterPlugin"};
}
29 changes: 15 additions & 14 deletions src/main/java/net/minecraftforge/common/ForgeModContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -425,20 +425,21 @@ private static ArrayList<String> setupHudConfig(String categoryName)
}

if (FMLCommonHandler.instance().getSide().isClient()) {
GuiIngameForge.renderVignette = values[0];
GuiIngameForge.renderHelmet = values[1];
GuiIngameForge.renderPortal = values[2];
GuiIngameForge.renderHotbar = values[3];
GuiIngameForge.renderCrosshairs = values[4];
GuiIngameForge.renderBossHealth = values[5];
GuiIngameForge.renderHealth = values[6];
GuiIngameForge.renderArmor = values[7];
GuiIngameForge.renderFood = values[8];
GuiIngameForge.renderHealthMount = values[9];
GuiIngameForge.renderAir = values[10];
GuiIngameForge.renderExperiance = values[11];
GuiIngameForge.renderJumpBar = values[12];
GuiIngameForge.renderObjective = values[13];
//`GuiIngameForge` class is client-only
GuiIngameForge.renderVignette = values[0];
GuiIngameForge.renderHelmet = values[1];
GuiIngameForge.renderPortal = values[2];
GuiIngameForge.renderHotbar = values[3];
GuiIngameForge.renderCrosshairs = values[4];
GuiIngameForge.renderBossHealth = values[5];
GuiIngameForge.renderHealth = values[6];
GuiIngameForge.renderArmor = values[7];
GuiIngameForge.renderFood = values[8];
GuiIngameForge.renderHealthMount = values[9];
GuiIngameForge.renderAir = values[10];
GuiIngameForge.renderExperiance = values[11];
GuiIngameForge.renderJumpBar = values[12];
GuiIngameForge.renderObjective = values[13];
}

return order;
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/net/minecraftforge/common/MinecraftForge.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

package net.minecraftforge.common;

import com.cleanroommc.common.CleanroomVersion;
import net.minecraftforge.fml.common.FMLLog;
import net.minecraftforge.fml.common.ICrashCallable;
import net.minecraftforge.fml.common.Loader;
Expand Down Expand Up @@ -83,7 +84,7 @@ public static void addGrassSeed(SeedEntry seed)
*/
public static void initialize()
{
FMLLog.log.info("MinecraftForge v{} Initialized", ForgeVersion.getVersion());
FMLLog.log.info("Cleanroom v{} Initialized", CleanroomVersion.BUILD_VERSION);

OreDictionary.getOreName(0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ public static void register(Class<?> configClass) {
modConfigClasses.add(configClass);
File configDir = new File(Launch.minecraftHome, "config");
String name = config.name();
File configFile = new File(configDir, Strings.isNullOrEmpty(name) ? config.modid() : name + ".cfg");
File configFile = new File(configDir, (Strings.isNullOrEmpty(name) ? config.modid() : name) + ".cfg");
Configuration cfg = CONFIGS.get(configFile.getAbsolutePath());
if (cfg == null) {
cfg = new Configuration(configFile);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ public void handleMouseInput(int mouseX, int mouseY) throws IOException
int scroll = Mouse.getEventDWheel();
if (scroll != 0)
{
this.scrollDistance += (float)((-1 * scroll / 120.0F) * this.slotHeight / 2);
this.scrollDistance += (float)((-1 * scroll) * this.slotHeight / 2);
}
}

Expand Down
5 changes: 3 additions & 2 deletions src/main/java/net/minecraftforge/fml/common/Loader.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
import net.minecraftforge.fml.common.LoaderState.ModState;
import net.minecraftforge.fml.common.ModContainer.Disableable;
import net.minecraftforge.fml.common.ProgressManager.ProgressBar;
import net.minecraftforge.fml.common.asm.FMLSanityChecker;
import net.minecraftforge.fml.common.discovery.ASMDataTable;
import net.minecraftforge.fml.common.discovery.ContainerType;
import net.minecraftforge.fml.common.discovery.ModCandidate;
Expand Down Expand Up @@ -373,8 +374,8 @@ private ModDiscoverer identifyMods(List<String> additionalContainers)
mods.add(minecraft);
// Add in the MCP mod container
mods.add(new InjectedModContainer(mcp,new File("minecraft.jar")));
mods.add(new InjectedModContainer(new ConfigAnytimeContainer(), new File("minecraft.jar")));
mods.add(new InjectedModContainer(new CleanroomContainer(), new File("minecraft.jar")));
mods.add(new InjectedModContainer(new ConfigAnytimeContainer(), FMLSanityChecker.fmlLocation));
mods.add(new InjectedModContainer(new CleanroomContainer(), FMLSanityChecker.fmlLocation));
for (String cont : injectedContainers)
{
ModContainer mc;
Expand Down
Loading

0 comments on commit fd0d3d4

Please sign in to comment.