Update to Minecraft 1.18.1
This commit is contained in:
parent
7c709e554d
commit
03877441bd
|
@ -39,7 +39,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
//mappings channel: 'parchment', version: "2021.08.22-$minecraftVersion"
|
//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')
|
accessTransformer = project.file('src/main/resources/META-INF/accesstransformer.cfg')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ dependencies {
|
||||||
|
|
||||||
implementation 'jline:jline:2.12.1'
|
implementation 'jline:jline:2.12.1'
|
||||||
implementation 'net.md-5:SpecialSource:1.9.0'
|
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 'net.md-5:bungeecord-chat:1.16-R0.4'
|
||||||
implementation 'mysql:mysql-connector-java:5.1.49'
|
implementation 'mysql:mysql-connector-java:5.1.49'
|
||||||
implementation 'org.yaml:snakeyaml:1.27'
|
implementation 'org.yaml:snakeyaml:1.27'
|
||||||
|
|
|
@ -44,7 +44,7 @@ repositories {
|
||||||
def embedLibs = [/*"org.spongepowered:mixin:$mixinVersion", */ 'org.yaml:snakeyaml:1.28',
|
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',
|
'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',
|
/*'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-jansi:3.12.1', 'org.fusesource.jansi:jansi:1.18',
|
||||||
/*'org.jline:jline-terminal:3.12.1', 'org.jline:jline-reader:3.12.1',*/
|
/*'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',
|
'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 'cpw.mods:securejarhandler:0.9.45'
|
||||||
implementation 'net.minecraftforge:forgespi:4.0.9'
|
implementation 'net.minecraftforge:forgespi:4.0.9'
|
||||||
gson 'com.google.code.gson:gson:2.8.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-api:2.15.0'
|
||||||
implementation 'org.apache.logging.log4j:log4j-core:2.14.1'
|
implementation 'org.apache.logging.log4j:log4j-core:2.15.0'
|
||||||
implementation 'org.jetbrains:annotations:22.0.0'
|
implementation 'org.jetbrains:annotations:22.0.0'
|
||||||
implementation 'org.spongepowered:mixin:0.8.3'
|
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) {
|
for (def lib : embedLibs) {
|
||||||
installer lib
|
installer lib
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,6 @@ import org.objectweb.asm.ClassVisitor;
|
||||||
import org.objectweb.asm.ClassWriter;
|
import org.objectweb.asm.ClassWriter;
|
||||||
import org.objectweb.asm.MethodVisitor;
|
import org.objectweb.asm.MethodVisitor;
|
||||||
import org.objectweb.asm.Opcodes;
|
import org.objectweb.asm.Opcodes;
|
||||||
import org.objectweb.asm.tree.ClassNode;
|
|
||||||
import org.objectweb.asm.tree.InsnNode;
|
|
||||||
|
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
import java.util.function.Consumer;
|
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("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
|
||||||
System.setProperty("log4j.jul.LoggerAdapter", "io.izzel.arclight.boot.log.ArclightLoggerAdapter");
|
System.setProperty("log4j.jul.LoggerAdapter", "io.izzel.arclight.boot.log.ArclightLoggerAdapter");
|
||||||
System.setProperty("log4j.configurationFile", "arclight-log4j2.xml");
|
System.setProperty("log4j.configurationFile", "arclight-log4j2.xml");
|
||||||
this.hackLog4j();
|
|
||||||
ArclightLocale.info("i18n.using-language", ArclightConfig.spec().getLocale().getCurrent(), ArclightConfig.spec().getLocale().getFallback());
|
ArclightLocale.info("i18n.using-language", ArclightConfig.spec().getLocale().getCurrent(), ArclightConfig.spec().getLocale().getFallback());
|
||||||
try {
|
try {
|
||||||
int javaVersion = (int) Float.parseFloat(System.getProperty("java.class.version"));
|
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 {
|
private void hackModlauncher() throws Exception {
|
||||||
try (var in = getClass().getClassLoader().getResourceAsStream("cpw/mods/modlauncher/TransformerClassWriter$SuperCollectingVisitor.class")) {
|
try (var in = getClass().getClassLoader().getResourceAsStream("cpw/mods/modlauncher/TransformerClassWriter$SuperCollectingVisitor.class")) {
|
||||||
var cw = new ClassWriter(0);
|
var cw = new ClassWriter(0);
|
||||||
|
|
|
@ -23,28 +23,28 @@
|
||||||
<PatternLayout>
|
<PatternLayout>
|
||||||
<!-- use white for info output -->
|
<!-- use white for info output -->
|
||||||
<LoggerNamePatternSelector
|
<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 -->
|
<!-- 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."
|
<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."
|
<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."
|
<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>
|
</LoggerNamePatternSelector>
|
||||||
</PatternLayout>
|
</PatternLayout>
|
||||||
</TerminalConsole>
|
</TerminalConsole>
|
||||||
<Queue name="ServerGuiConsole" ignoreExceptions="true">
|
<Queue name="ServerGuiConsole" ignoreExceptions="true">
|
||||||
<PatternLayout>
|
<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 -->
|
<!-- 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="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}{strip}%n"/>
|
<PatternMatch key="com.mojang." pattern="[%d{HH:mm:ss}] [%t/%level] [mojang/%logger{1}]: %minecraftFormatting{%msg{nolookup}}{strip}%n"/>
|
||||||
</LoggerNamePatternSelector>
|
</LoggerNamePatternSelector>
|
||||||
</PatternLayout>
|
</PatternLayout>
|
||||||
</Queue>
|
</Queue>
|
||||||
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
|
<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>
|
<Policies>
|
||||||
<TimeBasedTriggeringPolicy/>
|
<TimeBasedTriggeringPolicy/>
|
||||||
<OnStartupTriggeringPolicy/>
|
<OnStartupTriggeringPolicy/>
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
<DefaultRolloverStrategy max="99" fileIndex="min"/>
|
<DefaultRolloverStrategy max="99" fileIndex="min"/>
|
||||||
</RollingRandomAccessFile>
|
</RollingRandomAccessFile>
|
||||||
<RollingRandomAccessFile name="DebugFile" fileName="logs/debug.log" filePattern="logs/debug-%i.log.gz">
|
<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>
|
<Policies>
|
||||||
<OnStartupTriggeringPolicy/>
|
<OnStartupTriggeringPolicy/>
|
||||||
<SizeBasedTriggeringPolicy size="200MB"/>
|
<SizeBasedTriggeringPolicy size="200MB"/>
|
||||||
|
|
|
@ -13,8 +13,8 @@ allprojects {
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
agpVersion = '1.22'
|
agpVersion = '1.22'
|
||||||
minecraftVersion = '1.18'
|
minecraftVersion = '1.18.1'
|
||||||
forgeVersion = '38.0.12'
|
forgeVersion = '39.0.0'
|
||||||
apiVersion = '1.2.2'
|
apiVersion = '1.2.2'
|
||||||
toolsVersion = '1.3.+'
|
toolsVersion = '1.3.+'
|
||||||
mixinVersion = '0.8.5'
|
mixinVersion = '0.8.5'
|
||||||
|
|
|
@ -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 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 String SERVER_URL = "https://arclight.mcxk.net/net/minecraft/server/minecraft_server.%s.jar";
|
||||||
private static final Map<String, String> VERSION_HASH = Map.of(
|
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 {
|
public static List<Path> modInstall(Consumer<String> logger) throws Throwable {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user