Initial 1.15 version.
This commit is contained in:
parent
c538046c1a
commit
6ba2976f02
|
@ -1,10 +1,12 @@
|
|||
package io.izzel.arclight.server;
|
||||
package io.izzel.arclight.common;
|
||||
|
||||
import io.izzel.arclight.api.ArclightVersion;
|
||||
import io.izzel.arclight.api.EnumHelper;
|
||||
import io.izzel.arclight.api.Unsafe;
|
||||
import io.izzel.arclight.forgeinstaller.ForgeInstaller;
|
||||
import io.izzel.arclight.common.mod.util.log.ArclightI18nLogger;
|
||||
import io.izzel.arclight.common.mod.util.log.ArclightLazyLogManager;
|
||||
import io.izzel.arclight.common.mod.util.remapper.ArclightRemapper;
|
||||
import io.izzel.arclight.i18n.ArclightConfig;
|
||||
import io.izzel.arclight.i18n.ArclightLocale;
|
||||
import net.minecraftforge.server.ServerMain;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
@ -12,14 +14,13 @@ import java.util.Objects;
|
|||
import java.util.jar.Attributes;
|
||||
import java.util.jar.Manifest;
|
||||
|
||||
public class Main {
|
||||
public abstract class ArclightMain {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
public void run(String[] args) throws Throwable {
|
||||
System.setProperty("java.util.logging.manager", ArclightLazyLogManager.class.getCanonicalName());
|
||||
System.setProperty("log4j.jul.LoggerAdapter", "io.izzel.arclight.common.mod.util.log.ArclightLoggerAdapter");
|
||||
ArclightLocale.info("i18n.using-language", ArclightConfig.spec().getLocale().getCurrent(), ArclightConfig.spec().getLocale().getFallback());
|
||||
ArclightVersion.setVersion(ArclightVersion.v1_14);
|
||||
ForgeInstaller.install();
|
||||
this.afterSetup();
|
||||
try { // Java 9 & Java 兼容性
|
||||
int javaVersion = (int) Float.parseFloat(System.getProperty("java.class.version"));
|
||||
if (javaVersion == 53) {
|
||||
|
@ -35,6 +36,7 @@ public class Main {
|
|||
printLogo();
|
||||
ArclightI18nLogger.getLogger("Arclight").info("loading-mapping");
|
||||
Objects.requireNonNull(ArclightRemapper.INSTANCE);
|
||||
this.beforeStart();
|
||||
ServerMain.main(args);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -42,8 +44,8 @@ public class Main {
|
|||
}
|
||||
}
|
||||
|
||||
private static void printLogo() throws Exception {
|
||||
try (InputStream stream = Main.class.getResourceAsStream("/META-INF/MANIFEST.MF")) {
|
||||
private void printLogo() throws Exception {
|
||||
try (InputStream stream = getClass().getResourceAsStream("/META-INF/MANIFEST.MF")) {
|
||||
Manifest manifest = new Manifest(stream);
|
||||
Attributes attributes = manifest.getMainAttributes();
|
||||
String version = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
|
||||
|
@ -51,4 +53,10 @@ public class Main {
|
|||
ArclightI18nLogger.getLogger("Arclight").info("logo", version, buildTime);
|
||||
}
|
||||
}
|
||||
|
||||
protected void afterSetup() throws Throwable {
|
||||
}
|
||||
|
||||
protected void beforeStart() throws Throwable {
|
||||
}
|
||||
}
|
|
@ -453,6 +453,10 @@ public abstract class PlayerEntityMixin extends LivingEntityMixin implements Pla
|
|||
}).orElse(true);
|
||||
}
|
||||
|
||||
public CraftHumanEntity getBukkitEntity() {
|
||||
return (CraftHumanEntity) ((InternalEntityBridge) this).internal$getBukkitEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CraftHumanEntity bridge$getBukkitEntity() {
|
||||
return (CraftHumanEntity) ((InternalEntityBridge) this).internal$getBukkitEntity();
|
||||
|
|
|
@ -5,9 +5,14 @@ import com.mojang.authlib.GameProfile;
|
|||
import io.izzel.arclight.api.ArclightVersion;
|
||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge;
|
||||
import io.izzel.arclight.common.bridge.network.NetworkManagerBridge;
|
||||
import io.izzel.arclight.common.bridge.network.login.ServerLoginNetHandlerBridge;
|
||||
import io.izzel.arclight.common.bridge.network.play.ServerPlayNetHandlerBridge;
|
||||
import io.izzel.arclight.common.bridge.server.MinecraftServerBridge;
|
||||
import io.izzel.arclight.common.bridge.server.management.PlayerListBridge;
|
||||
import io.izzel.arclight.common.bridge.world.WorldBridge;
|
||||
import io.izzel.arclight.common.bridge.world.dimension.DimensionTypeBridge;
|
||||
import io.izzel.arclight.common.mod.ArclightMod;
|
||||
import io.izzel.arclight.common.mod.server.BukkitRegistry;
|
||||
import io.izzel.arclight.common.mod.util.ArclightCaptures;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
|
@ -18,7 +23,6 @@ import net.minecraft.network.login.ServerLoginNetHandler;
|
|||
import net.minecraft.network.play.server.SChangeGameStatePacket;
|
||||
import net.minecraft.network.play.server.SChatPacket;
|
||||
import net.minecraft.network.play.server.SEntityStatusPacket;
|
||||
import net.minecraft.network.play.server.SRespawnPacket;
|
||||
import net.minecraft.network.play.server.SServerDifficultyPacket;
|
||||
import net.minecraft.network.play.server.SSetExperiencePacket;
|
||||
import net.minecraft.network.play.server.SSpawnPositionPacket;
|
||||
|
@ -70,10 +74,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import io.izzel.arclight.common.mod.ArclightMod;
|
||||
import io.izzel.arclight.common.mod.util.ArclightCaptures;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.File;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
|
@ -36,11 +36,9 @@ public abstract class PlayerEntityMixin_1_15 extends LivingEntityMixin_1_15 impl
|
|||
@Shadow public abstract void startSleeping(BlockPos p_213342_1_);
|
||||
@Shadow public int sleepTimer;
|
||||
@Shadow @Final public PlayerAbilities abilities;
|
||||
@Shadow public abstract void addStat(ResourceLocation stat);
|
||||
// @formatter:on
|
||||
|
||||
@Shadow
|
||||
public abstract void addStat(ResourceLocation stat);
|
||||
|
||||
@Override
|
||||
public CraftHumanEntity bridge$getBukkitEntity() {
|
||||
return (CraftHumanEntity) ((InternalEntityBridge) this).internal$getBukkitEntity();
|
||||
|
|
|
@ -2,9 +2,7 @@ package io.izzel.arclight.common.mod;
|
|||
|
||||
import cpw.mods.modlauncher.api.ITransformingClassLoader;
|
||||
import io.izzel.arclight.api.ArclightVersion;
|
||||
import cpw.mods.modlauncher.api.ITransformingClassLoader;
|
||||
import io.izzel.arclight.common.mod.util.log.ArclightI18nLogger;
|
||||
import io.izzel.arclight.i18n.ArclightConfig;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.spongepowered.asm.mixin.Mixins;
|
||||
import org.spongepowered.asm.mixin.connect.IMixinConnector;
|
||||
|
@ -15,7 +13,8 @@ import java.util.List;
|
|||
public class ArclightConnector implements IMixinConnector {
|
||||
|
||||
public static final Logger LOGGER = ArclightI18nLogger.getLogger("Arclight");
|
||||
private static final List<String> FILTER_PACKAGE = Arrays.asList("com.google.common", "com.google.gson", "ninja.leaping.configurate", "io.izzel.arclight.api");
|
||||
private static final List<String> FILTER_PACKAGE = Arrays.asList("com.google.common", "com.google.gson", "ninja.leaping.configurate",
|
||||
"io.izzel.arclight.api", "io.izzel.arclight.i18n");
|
||||
|
||||
@Override
|
||||
public void connect() {
|
||||
|
|
|
@ -68,7 +68,6 @@ def embedLibs = ['org.spongepowered:mixin:0.8', 'org.ow2.asm:asm-util:6.2',
|
|||
dependencies {
|
||||
minecraft "net.minecraftforge:forge:$minecraftVersion-$forgeVersion"
|
||||
compile group: 'org.jetbrains', name: 'annotations', version: '19.0.0'
|
||||
compile project(':arclight-common')
|
||||
compile(project(':arclight-common')) {
|
||||
exclude module: 'forge'
|
||||
}
|
||||
|
@ -98,7 +97,7 @@ processResources {
|
|||
|
||||
jar {
|
||||
manifest.attributes 'MixinConnector': 'io.izzel.arclight.impl.ArclightConnector_1_14'
|
||||
manifest.attributes 'Main-Class': 'io.izzel.arclight.server.Main'
|
||||
manifest.attributes 'Main-Class': 'io.izzel.arclight.server.Main_1_14'
|
||||
manifest.attributes 'Implementation-Title': 'Arclight'
|
||||
manifest.attributes 'Implementation-Version': "arclight-$minecraftVersion-${project.version}-${getGitHash()}"
|
||||
manifest.attributes 'Implementation-Vendor': 'Arclight Team'
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package io.izzel.arclight.impl;
|
||||
|
||||
import io.izzel.arclight.common.mod.ArclightConfig;
|
||||
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_14 extends ArclightConnector {
|
||||
|
||||
@Override
|
||||
|
@ -11,9 +12,9 @@ public class ArclightConnector_1_14 extends ArclightConnector {
|
|||
super.connect();
|
||||
Mixins.addConfiguration("mixins.arclight.impl.core.1_14.json");
|
||||
Mixins.addConfiguration("mixins.arclight.optimization.1_14.json");
|
||||
if (ArclightConfig.INSTANCE.optimizations.removeStreams) {
|
||||
if (ArclightConfig.spec().getOptimization().isRemoveStream()) {
|
||||
Mixins.addConfiguration("mixins.arclight.optimization.stream.1_14.json");
|
||||
}
|
||||
LOGGER.info("Arclight optimization mixin added.");
|
||||
LOGGER.info("mixin-load.optimization");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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_14 extends ArclightMain {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
new Main_1_14().run(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void afterSetup() throws Throwable {
|
||||
ArclightVersion.setVersion(ArclightVersion.v1_14);
|
||||
ForgeInstaller.install();
|
||||
}
|
||||
}
|
|
@ -71,6 +71,7 @@ dependencies {
|
|||
compile(project(':arclight-common')) {
|
||||
exclude module: 'forge'
|
||||
}
|
||||
embed project(':i18n-config')
|
||||
embed project(':forge-installer')
|
||||
for (def lib : embedLibs) {
|
||||
arclight lib
|
||||
|
@ -96,10 +97,11 @@ processResources {
|
|||
|
||||
jar {
|
||||
manifest.attributes 'MixinConnector': 'io.izzel.arclight.impl.ArclightConnector_1_15'
|
||||
manifest.attributes 'Main-Class': 'io.izzel.arclight.server.Main'
|
||||
manifest.attributes 'Main-Class': 'io.izzel.arclight.server.Main_1_15'
|
||||
manifest.attributes 'Implementation-Title': 'Arclight'
|
||||
manifest.attributes 'Implementation-Version': "arclight-${project.version}-${getGitHash()}"
|
||||
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"
|
||||
|
|
|
@ -2,6 +2,7 @@ package io.izzel.arclight.impl;
|
|||
|
||||
import io.izzel.arclight.common.mod.ArclightConnector;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class ArclightConnector_1_15 extends ArclightConnector {
|
||||
|
||||
@Override
|
||||
|
@ -13,6 +14,6 @@ public class ArclightConnector_1_15 extends ArclightConnector {
|
|||
if (ArclightConfig.INSTANCE.optimizations.removeStreams) {
|
||||
Mixins.addConfiguration("mixins.arclight.optimization.stream.1_14.json");
|
||||
}*/
|
||||
LOGGER.info("Arclight optimization mixin added.");
|
||||
// LOGGER.info("Arclight optimization mixin added.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
package io.izzel.arclight.server;
|
||||
|
||||
import io.izzel.arclight.api.ArclightVersion;
|
||||
import io.izzel.arclight.api.EnumHelper;
|
||||
import io.izzel.arclight.api.Unsafe;
|
||||
import io.izzel.arclight.common.mod.util.remapper.ArclightRemapper;
|
||||
import io.izzel.arclight.forgeinstaller.ForgeInstaller;
|
||||
import net.minecraftforge.server.ServerMain;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
ForgeInstaller.install();
|
||||
try { // Java 9 & Java 兼容性
|
||||
int javaVersion = (int) Float.parseFloat(System.getProperty("java.class.version"));
|
||||
if (javaVersion == 53) {
|
||||
throw new Exception("Only Java 8 and Java 10+ is supported.");
|
||||
}
|
||||
Unsafe.ensureClassInitialized(EnumHelper.class);
|
||||
} catch (Throwable t) {
|
||||
System.err.println("Your Java is not compatible with Arclight.");
|
||||
t.printStackTrace();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
|
||||
System.setProperty("log4j.jul.LoggerAdapter", "io.izzel.arclight.common.mod.util.ArclightLoggerAdapter");
|
||||
ArclightVersion.setVersion(ArclightVersion.v1_15);
|
||||
LogManager.getLogger("Arclight").info("Loading mappings ...");
|
||||
Objects.requireNonNull(ArclightRemapper.INSTANCE);
|
||||
ServerMain.main(args);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.err.println("Fail to launch Arclight.");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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_15 extends ArclightMain {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
new Main_1_15().run(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void afterSetup() throws Throwable {
|
||||
ArclightVersion.setVersion(ArclightVersion.v1_15);
|
||||
ForgeInstaller.install();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user