Update to Minecraft 1.18.1

This commit is contained in:
IzzelAliz 2021-12-12 14:28:50 +08:00
parent 7c709e554d
commit 03877441bd
No known key found for this signature in database
GPG Key ID: EE50E123A11D8338
6 changed files with 18 additions and 44 deletions

View File

@ -39,7 +39,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17)
minecraft {
//mappings channel: 'parchment', version: "2021.08.22-$minecraftVersion"
mappings channel: 'official', version: '1.18'
mappings channel: 'official', version: minecraftVersion
accessTransformer = project.file('src/main/resources/META-INF/accesstransformer.cfg')
}
@ -65,7 +65,7 @@ dependencies {
implementation 'jline:jline:2.12.1'
implementation 'net.md-5:SpecialSource:1.9.0'
implementation 'org.apache.logging.log4j:log4j-jul:2.11.2'
implementation 'org.apache.logging.log4j:log4j-jul:2.15.0'
implementation 'net.md-5:bungeecord-chat:1.16-R0.4'
implementation 'mysql:mysql-connector-java:5.1.49'
implementation 'org.yaml:snakeyaml:1.27'

View File

@ -44,7 +44,7 @@ repositories {
def embedLibs = [/*"org.spongepowered:mixin:$mixinVersion", */ 'org.yaml:snakeyaml:1.28',
'org.xerial:sqlite-jdbc:3.36.0.3', 'mysql:mysql-connector-java:8.0.27',
/*'commons-lang:commons-lang:2.6',*/ 'com.googlecode.json-simple:json-simple:1.1.1',
'org.apache.logging.log4j:log4j-jul:2.14.1', 'net.md-5:SpecialSource:1.10.0',
'org.apache.logging.log4j:log4j-jul:2.15.0', 'net.md-5:SpecialSource:1.10.0',
'org.jline:jline-terminal-jansi:3.12.1', 'org.fusesource.jansi:jansi:1.18',
/*'org.jline:jline-terminal:3.12.1', 'org.jline:jline-reader:3.12.1',*/
'jline:jline:2.12.1', 'org.apache.maven:maven-resolver-provider:3.8.1',
@ -68,11 +68,11 @@ dependencies {
implementation 'cpw.mods:securejarhandler:0.9.45'
implementation 'net.minecraftforge:forgespi:4.0.9'
gson 'com.google.code.gson:gson:2.8.9'
implementation 'org.apache.logging.log4j:log4j-api:2.14.1'
implementation 'org.apache.logging.log4j:log4j-core:2.14.1'
implementation 'org.apache.logging.log4j:log4j-api:2.15.0'
implementation 'org.apache.logging.log4j:log4j-core:2.15.0'
implementation 'org.jetbrains:annotations:22.0.0'
implementation 'org.spongepowered:mixin:0.8.3'
implementation 'org.apache.logging.log4j:log4j-jul:2.14.1'
implementation 'org.apache.logging.log4j:log4j-jul:2.15.0'
for (def lib : embedLibs) {
installer lib
}

View File

@ -10,8 +10,6 @@ import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.InsnNode;
import java.util.ServiceLoader;
import java.util.function.Consumer;
@ -27,7 +25,6 @@ public class ApplicationBootstrap extends AbstractBootstrap implements Consumer<
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
System.setProperty("log4j.jul.LoggerAdapter", "io.izzel.arclight.boot.log.ArclightLoggerAdapter");
System.setProperty("log4j.configurationFile", "arclight-log4j2.xml");
this.hackLog4j();
ArclightLocale.info("i18n.using-language", ArclightConfig.spec().getLocale().getCurrent(), ArclightConfig.spec().getLocale().getFallback());
try {
int javaVersion = (int) Float.parseFloat(System.getProperty("java.class.version"));
@ -54,29 +51,6 @@ public class ApplicationBootstrap extends AbstractBootstrap implements Consumer<
}
}
private void hackLog4j() {
try (var in = getClass().getClassLoader().getResourceAsStream("org/apache/logging/log4j/core/lookup/JndiLookup.class")) {
var cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
var cr = new ClassReader(in);
var node = new ClassNode();
cr.accept(node, 0);
for (var method : node.methods) {
if (method.name.equals("lookup")) {
method.instructions.clear();
method.instructions.add(new InsnNode(Opcodes.ACONST_NULL));
method.instructions.add(new InsnNode(Opcodes.ARETURN));
method.tryCatchBlocks.clear();
method.localVariables.clear();
}
}
node.accept(cw);
var bytes = cw.toByteArray();
Unsafe.defineClass(cr.getClassName(), bytes, 0, bytes.length, getClass().getClassLoader(), getClass().getProtectionDomain());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private void hackModlauncher() throws Exception {
try (var in = getClass().getClassLoader().getResourceAsStream("cpw/mods/modlauncher/TransformerClassWriter$SuperCollectingVisitor.class")) {
var cw = new ClassWriter(0);

View File

@ -23,28 +23,28 @@
<PatternLayout>
<!-- use white for info output -->
<LoggerNamePatternSelector
defaultPattern="%highlight{[%d{HH:mm:ss} %level] [%c{1.}%notEmpty{/%markerSimpleName}]: %minecraftFormatting{%msg}%n%xEx}{INFO=normal}">
defaultPattern="%highlight{[%d{HH:mm:ss} %level] [%c{1.}%notEmpty{/%markerSimpleName}]: %minecraftFormatting{%msg{nolookup}}%n%xEx}{INFO=normal}">
<!-- don't include the full logger name for Mojang's logs since they use full class names and it's very verbose -->
<PatternMatch key="net.minecraft."
pattern="%highlight{[%d{HH:mm:ss} %level]: %minecraftFormatting{%msg}%n%xEx}{INFO=normal}"/>
pattern="%highlight{[%d{HH:mm:ss} %level]: %minecraftFormatting{%msg{nolookup}}%n%xEx}{INFO=normal}"/>
<PatternMatch key="com.mojang."
pattern="%highlight{[%d{HH:mm:ss} %level]: %minecraftFormatting{%msg}%n%xEx}{INFO=normal}"/>
pattern="%highlight{[%d{HH:mm:ss} %level]: %minecraftFormatting{%msg{nolookup}}%n%xEx}{INFO=normal}"/>
<PatternMatch key="net.minecraftforge."
pattern="%highlight{[%d{HH:mm:ss} %level]: %minecraftFormatting{%msg}%n%xEx}{INFO=normal}"/>
pattern="%highlight{[%d{HH:mm:ss} %level]: %minecraftFormatting{%msg{nolookup}}%n%xEx}{INFO=normal}"/>
</LoggerNamePatternSelector>
</PatternLayout>
</TerminalConsole>
<Queue name="ServerGuiConsole" ignoreExceptions="true">
<PatternLayout>
<LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss}] [%t/%level] [%c{2.}/%markerSimpleName]: %minecraftFormatting{%msg}{strip}%n">
<LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss}] [%t/%level] [%c{2.}/%markerSimpleName]: %minecraftFormatting{%msg{nolookup}}{strip}%n">
<!-- don't include the full logger name for Mojang's logs since they use full class names and it's very verbose -->
<PatternMatch key="net.minecraft." pattern="[%d{HH:mm:ss}] [%t/%level] [minecraft/%logger{1}]: %minecraftFormatting{%msg}{strip}%n"/>
<PatternMatch key="com.mojang." pattern="[%d{HH:mm:ss}] [%t/%level] [mojang/%logger{1}]: %minecraftFormatting{%msg}{strip}%n"/>
<PatternMatch key="net.minecraft." pattern="[%d{HH:mm:ss}] [%t/%level] [minecraft/%logger{1}]: %minecraftFormatting{%msg{nolookup}}{strip}%n"/>
<PatternMatch key="com.mojang." pattern="[%d{HH:mm:ss}] [%t/%level] [mojang/%logger{1}]: %minecraftFormatting{%msg{nolookup}}{strip}%n"/>
</LoggerNamePatternSelector>
</PatternLayout>
</Queue>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%d{ddMMMyyyy HH:mm:ss.SSS}] [%t/%level] [%logger/%markerSimpleName]: %minecraftFormatting{%msg}{strip}%n%tEx"/>
<PatternLayout pattern="[%d{ddMMMyyyy HH:mm:ss.SSS}] [%t/%level] [%logger/%markerSimpleName]: %minecraftFormatting{%msg{nolookup}}{strip}%n%tEx"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<OnStartupTriggeringPolicy/>
@ -52,7 +52,7 @@
<DefaultRolloverStrategy max="99" fileIndex="min"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="DebugFile" fileName="logs/debug.log" filePattern="logs/debug-%i.log.gz">
<PatternLayout pattern="[%d{ddMMMyyyy HH:mm:ss.SSS}] [%t/%level] [%logger/%markerSimpleName]: %minecraftFormatting{%msg}{strip}%n%tEx"/>
<PatternLayout pattern="[%d{ddMMMyyyy HH:mm:ss.SSS}] [%t/%level] [%logger/%markerSimpleName]: %minecraftFormatting{%msg{nolookup}}{strip}%n%tEx"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="200MB"/>

View File

@ -13,8 +13,8 @@ allprojects {
ext {
agpVersion = '1.22'
minecraftVersion = '1.18'
forgeVersion = '38.0.12'
minecraftVersion = '1.18.1'
forgeVersion = '39.0.0'
apiVersion = '1.2.2'
toolsVersion = '1.3.+'
mixinVersion = '0.8.5'

View File

@ -58,7 +58,7 @@ public class ForgeInstaller {
private static final String INSTALLER_URL = "https://arclight.mcxk.net/net/minecraftforge/forge/%s-%s/forge-%s-%s-installer.jar";
private static final String SERVER_URL = "https://arclight.mcxk.net/net/minecraft/server/minecraft_server.%s.jar";
private static final Map<String, String> VERSION_HASH = Map.of(
"1.18", "3cf24a8694aca6267883b17d934efacc5e44440d"
"1.18.1", "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9"
);
public static List<Path> modInstall(Consumer<String> logger) throws Throwable {