From f05961d60e54a04d3a21e9ae71fe5fb34c775e78 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Thu, 20 Aug 2020 16:57:08 +0800 Subject: [PATCH] 1.16 initial, dependencies, projects. --- arclight-forge-1.16/build.gradle | 129 ++++++++++++++++++ .../arclight/impl/ArclightConnector_1_16.java | 18 +++ .../arclight/impl/ArclightLocator_1_16.java | 20 +++ .../io/izzel/arclight/server/Main_1_16.java | 18 +++ .../src/main/resources/META-INF/mods.toml | 13 ++ ...necraftforge.forgespi.locating.IModLocator | 1 + .../src/main/resources/pack.mcmeta | 6 + 7 files changed, 205 insertions(+) create mode 100644 arclight-forge-1.16/build.gradle create mode 100644 arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightConnector_1_16.java create mode 100644 arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightLocator_1_16.java create mode 100644 arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java create mode 100644 arclight-forge-1.16/src/main/resources/META-INF/mods.toml create mode 100644 arclight-forge-1.16/src/main/resources/META-INF/services/net.minecraftforge.forgespi.locating.IModLocator create mode 100644 arclight-forge-1.16/src/main/resources/pack.mcmeta diff --git a/arclight-forge-1.16/build.gradle b/arclight-forge-1.16/build.gradle new file mode 100644 index 00000000..f1b47fb7 --- /dev/null +++ b/arclight-forge-1.16/build.gradle @@ -0,0 +1,129 @@ +buildscript { + repositories { + maven { url = 'https://files.minecraftforge.net/maven' } + maven { url = 'https://repo.spongepowered.org/maven' } + jcenter() + mavenCentral() + maven { url = 'https://jitpack.io' } + } + dependencies { + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true + classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' + classpath "com.github.ArclightTeam:arclight-gradle-plugin:$agpVersion" + } +} + +apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'org.spongepowered.mixin' +apply plugin: 'java' +apply plugin: 'idea' +apply plugin: 'io.izzel.arclight' + +ext { + minecraftVersion = '1.16.2' + forgeVersion = '33.0.5' +} + +arclight { + mcVersion = minecraftVersion + forgeVersion = project.ext.forgeVersion + bukkitVersion = 'v1_16_R2' + wipeVersion = true + reobfVersion = true + accessTransformer = project(':arclight-common').file('bukkit.at') +} + +sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' + +configurations { + embed + compile.extendsFrom(embed) +} + +minecraft { + mappings channel: 'snapshot', version: "20200813-1.16.1" + accessTransformer = project(':arclight-common').file('src/main/resources/META-INF/accesstransformer.cfg') +} + +repositories { + jcenter() + maven { + name = 'sponge-repo' + url = 'https://repo.spongepowered.org/maven' + } + maven { url = 'https://oss.sonatype.org/content/repositories/snapshots/' } + maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' } + maven { url = 'https://repo.codemc.io/repository/nms/' } + maven { url = 'https://files.minecraftforge.net/maven/' } + maven { url = 'https://www.dogforce-games.com/maven/' } +} + +def embedLibs = ['org.spongepowered:mixin:0.8', 'org.ow2.asm:asm-util:8.0.1', + 'org.ow2.asm:asm-analysis:8.0.1', 'org.yaml:snakeyaml:1.25', + 'org.xerial:sqlite-jdbc:3.32.3', 'mysql:mysql-connector-java:5.1.49', + 'commons-lang:commons-lang:2.6', 'com.googlecode.json-simple:json-simple:1.1.1', + 'org.apache.logging.log4j:log4j-jul:2.11.2', 'net.md-5:SpecialSource:1.8.6', + 'net.minecraftforge:eventbus:2.0.0-milestone.1:service', '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'] + +dependencies { + minecraft "net.minecraftforge:forge:$minecraftVersion-$forgeVersion" + compile group: 'org.jetbrains', name: 'annotations', version: '19.0.0' + compile(project(':arclight-common')) { + exclude module: 'forge' + } + embed project(':i18n-config') + embed project(':forge-installer') + for (def lib : embedLibs) { + arclight lib + } + embed 'net.md-5:bungeecord-chat:1.16-R0.3@jar' + embed "org.spigotmc:spigot-api:$minecraftVersion-R0.1-SNAPSHOT@jar" +} + +def getGitHash = { -> + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'rev-parse', '--short', 'HEAD' + standardOutput = stdout + } + return stdout.toString().trim() +} + +processResources { + filesMatching("**/mods.toml") { + expand 'version': "$minecraftVersion-${project.version}-${getGitHash()}" + } +} + +jar { + manifest.attributes 'MixinConnector': 'io.izzel.arclight.impl.ArclightConnector_1_16' + manifest.attributes 'Main-Class': 'io.izzel.arclight.server.Main_1_16' + manifest.attributes 'Implementation-Title': 'Arclight' + manifest.attributes 'Implementation-Version': "arclight-$minecraftVersion-${project.version}-${getGitHash()}" + manifest.attributes 'Implementation-Vendor': 'Arclight Team' + manifest.attributes 'Implementation-Timestamp': new Date().format("yyyy-MM-dd HH:mm:ss") + from(configurations.embed.collect { it.isDirectory() ? it : zipTree(it) }) { + exclude "META-INF/MANIFEST.MF" + exclude "META-INF/*.SF" + exclude "META-INF/*.DSA" + exclude "META-INF/*.RSA" + exclude "LICENSE.txt" + } + from(project(':arclight-common').tasks.jar.outputs.files.collect { it.isDirectory() ? it : zipTree(it) }) +} + +remapSpigotJar { + includes.add('net/minecraft/block/ChestBlock$DoubleInventory') + includes.add('net/minecraft/tileentity/LecternTileEntity$LecternInventory') +} + +mixin { + // add sourceSets.main, 'mixins.arclight.impl.refmap.1_15.json' +} + +compileJava { + options.compilerArgs << '-XDignore.symbol.file' << '-XDenableSunApiLintControl' + options.encoding = 'UTF-8' +} \ No newline at end of file diff --git a/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightConnector_1_16.java b/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightConnector_1_16.java new file mode 100644 index 00000000..0e3f337c --- /dev/null +++ b/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightConnector_1_16.java @@ -0,0 +1,18 @@ +package io.izzel.arclight.impl; + +import io.izzel.arclight.common.mod.ArclightConnector; +import io.izzel.arclight.i18n.ArclightConfig; +import org.spongepowered.asm.mixin.Mixins; + +@SuppressWarnings("unused") +public class ArclightConnector_1_16 extends ArclightConnector { + + @Override + public void connect() { + super.connect(); + if (ArclightConfig.spec().getOptimization().isRemoveStream()) { + Mixins.addConfiguration("mixins.arclight.impl.optimization.stream.1_15.json"); + } + LOGGER.info("mixin-load.optimization"); + } +} diff --git a/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightLocator_1_16.java b/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightLocator_1_16.java new file mode 100644 index 00000000..4066de43 --- /dev/null +++ b/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/ArclightLocator_1_16.java @@ -0,0 +1,20 @@ +package io.izzel.arclight.impl; + +import io.izzel.arclight.common.mod.ArclightLocator; +import net.minecraftforge.fml.loading.moddiscovery.ModFile; +import net.minecraftforge.forgespi.locating.IModFile; + +import java.io.File; +import java.net.URISyntaxException; + +public class ArclightLocator_1_16 extends ArclightLocator { + + @Override + protected IModFile loadJars() { + try { + return ModFile.newFMLInstance(new File(ArclightLocator.class.getProtectionDomain().getCodeSource().getLocation().toURI()).toPath(), this); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } +} diff --git a/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java b/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java new file mode 100644 index 00000000..6de1d599 --- /dev/null +++ b/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java @@ -0,0 +1,18 @@ +package io.izzel.arclight.server; + +import io.izzel.arclight.api.ArclightVersion; +import io.izzel.arclight.common.ArclightMain; +import io.izzel.arclight.forgeinstaller.ForgeInstaller; + +public class Main_1_16 extends ArclightMain { + + public static void main(String[] args) throws Throwable { + new Main_1_16().run(args); + } + + @Override + protected void afterSetup() throws Throwable { + ArclightVersion.setVersion(ArclightVersion.v1_16); + ForgeInstaller.install(); + } +} diff --git a/arclight-forge-1.16/src/main/resources/META-INF/mods.toml b/arclight-forge-1.16/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..a046589a --- /dev/null +++ b/arclight-forge-1.16/src/main/resources/META-INF/mods.toml @@ -0,0 +1,13 @@ +modLoader="javafml" +loaderVersion="[24,]" +license="GNU GENERAL PUBLIC LICENSE Version 3" + +[[mods]] + modId="arclight" + version="${version}" + displayName="Arclight Mod" + credits="lona,夜幕" + authors="IzzelAliz" + description=''' + Arclight bukkit layer for MinecraftForge + ''' diff --git a/arclight-forge-1.16/src/main/resources/META-INF/services/net.minecraftforge.forgespi.locating.IModLocator b/arclight-forge-1.16/src/main/resources/META-INF/services/net.minecraftforge.forgespi.locating.IModLocator new file mode 100644 index 00000000..9a144c8a --- /dev/null +++ b/arclight-forge-1.16/src/main/resources/META-INF/services/net.minecraftforge.forgespi.locating.IModLocator @@ -0,0 +1 @@ +io.izzel.arclight.impl.ArclightLocator_1_16 \ No newline at end of file diff --git a/arclight-forge-1.16/src/main/resources/pack.mcmeta b/arclight-forge-1.16/src/main/resources/pack.mcmeta new file mode 100644 index 00000000..5d16a403 --- /dev/null +++ b/arclight-forge-1.16/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "Arclight resources", + "pack_format": 4 + } +}