getting somewhere
This commit is contained in:
1 parent
a7ab061ddc
commit
bccba2893e
13 files changed
+50
-164
No files matched your search
+9
-37
@@ -1,6 +1,5 @@
|
||||
plugins {
|
||||
id 'fabric-loom' version '1.7-SNAPSHOT'
|
||||
id 'maven-publish'
|
||||
}
|
||||
|
||||
version = project.mod_version
|
||||
@@ -12,11 +11,6 @@ base {
|
||||
|
||||
|
||||
repositories {
|
||||
// Add repositories to retrieve artifacts from in here.
|
||||
// You should only use this when depending on other mods because
|
||||
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
|
||||
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
|
||||
// for more information about repositories.
|
||||
maven { url "https://repo.viaversion.com" }
|
||||
maven { url "https://libraries.minecraft.net" }
|
||||
maven { url "https://maven.lenni0451.net/everything" }
|
||||
@@ -31,19 +25,15 @@ dependencies {
|
||||
// Fabric API. This is technically optional, but you probably want it anyway.
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
||||
|
||||
include(implementation "com.viaversion:viaversion-common:5.0.2-SNAPSHOT")
|
||||
include(implementation "com.viaversion:viabackwards-common:5.0.2-SNAPSHOT")
|
||||
include(implementation "com.viaversion:viarewind-common:4.0.2-SNAPSHOT")
|
||||
include(implementation "net.raphimc:ViaLegacy:3.0.2-SNAPSHOT")
|
||||
include(implementation "net.raphimc:viaaprilfools-common:3.0.1-SNAPSHOT")
|
||||
include(implementation "net.raphimc:ViaBedrock:0.0.10-SNAPSHOT") {
|
||||
exclude group: "io.netty"
|
||||
exclude group: "io.jsonwebtoken"
|
||||
}
|
||||
include(implementation "net.raphimc:ViaLoader:3.0.2-SNAPSHOT")
|
||||
implementation "com.viaversion:viaversion-common:5.0.4-SNAPSHOT"
|
||||
implementation "com.viaversion:viabackwards-common:5.0.4-SNAPSHOT"
|
||||
modImplementation "net.raphimc:viaaprilfools-common:3.0.2-SNAPSHOT"
|
||||
implementation "net.raphimc:ViaLoader:3.0.3-SNAPSHOT"
|
||||
|
||||
include(implementation "net.raphimc.netminecraft:all:2.5.1-SNAPSHOT")
|
||||
include(implementation "net.lenni0451:Reflect:1.3.4")
|
||||
implementation "net.raphimc.netminecraft:all:2.5.1-SNAPSHOT"
|
||||
implementation "net.lenni0451:Reflect:1.3.4"
|
||||
implementation "org.slf4j:slf4j-api:2.0.16"
|
||||
include "org.yaml:snakeyaml:2.2"
|
||||
}
|
||||
|
||||
processResources {
|
||||
@@ -86,22 +76,4 @@ jar {
|
||||
from("LICENSE") {
|
||||
rename { "${it}_${project.archivesBaseName}" }
|
||||
}
|
||||
}
|
||||
|
||||
// configure the maven publication
|
||||
publishing {
|
||||
publications {
|
||||
create("mavenJava", MavenPublication) {
|
||||
artifactId = project.archives_base_name
|
||||
from components.java
|
||||
}
|
||||
}
|
||||
|
||||
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
|
||||
repositories {
|
||||
// Add repositories to publish to here.
|
||||
// Notice: This block does NOT have the same function as the block in the top level.
|
||||
// The repositories here will be used for publishing your artifact, not for
|
||||
// retrieving dependencies.
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
|
||||
# Fabric Properties
|
||||
# check these on https://modmuss50.me/fabric.html
|
||||
minecraft_version=1.16_combat-6
|
||||
loader_version=0.16.0
|
||||
loader_version=0.14.21
|
||||
# Mod Properties
|
||||
mod_version=1.0
|
||||
maven_group=com.nexia
|
||||
|
||||
@@ -1,34 +1,24 @@
|
||||
package com.nexia.viacombatium;
|
||||
|
||||
import com.nexia.viacombatium.impl.ViaCombatiumVLLoader;
|
||||
import com.nexia.viacombatium.impl.ViaVersionPlatformImpl;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import com.viaversion.viaversion.api.protocol.version.VersionType;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.raphimc.vialoader.ViaLoader;
|
||||
import net.raphimc.vialoader.impl.platform.ViaAprilFoolsPlatformImpl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class ViaCombatium implements ModInitializer {
|
||||
public static ProtocolVersion AUTO_DETECT_PROTOCOL = new ProtocolVersion(VersionType.SPECIAL, -2, -1, "Auto Detect (1.7+ servers)", null);
|
||||
public static Logger logger = LoggerFactory.getLogger("ViaCombatium");
|
||||
public static final Logger logger = Logger.getLogger("ViaCombatium");
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
ViaVersionPlatformImpl viaVersionPlatform = new ViaVersionPlatformImpl(FabricLoader.getInstance().getConfigDir().toFile());
|
||||
|
||||
ViaLoader.init(
|
||||
viaVersionPlatform,
|
||||
null,
|
||||
new ViaCombatiumVLLoader(),
|
||||
null/*ViaInjector*/,
|
||||
null/*ViaCommandHandler*/,
|
||||
ViaBackwardsPlatformImpl::new,
|
||||
ViaAprilFoolsPlatformImpl::new
|
||||
);
|
||||
viaVersionPlatform.init();
|
||||
ProtocolVersion.register(AUTO_DETECT_PROTOCOL);
|
||||
System.out.println(Via.getPlatform().getDump());
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,14 @@
|
||||
package com.nexia.viacombatium.impl;
|
||||
|
||||
import com.nexia.viacombatium.ViaCombatium;
|
||||
import com.nexia.viacombatium.platform.NativeVersionProvider;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import com.viaversion.viaversion.api.protocol.version.VersionProvider;
|
||||
import com.viaversion.viaversion.protocol.version.BaseVersionProvider;
|
||||
import net.raphimc.viaaprilfools.api.VAFServerVersionProvider;
|
||||
import net.raphimc.vialoader.impl.viaversion.VLLoader;
|
||||
|
||||
public class ViaCombatiumVLLoader extends VLLoader {
|
||||
@Override
|
||||
public void load() {
|
||||
super.load();
|
||||
|
||||
Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
|
||||
@Override
|
||||
public ProtocolVersion getClosestServerProtocol(UserConnection connection) throws Exception {
|
||||
/*
|
||||
NativeVersionProvider natProvider = Via.getManager().getProviders().get(NativeVersionProvider.class);
|
||||
if (natProvider != null) {
|
||||
return natProvider.getNativeServerProtocolVersion();
|
||||
}
|
||||
*/
|
||||
return super.getClosestServerProtocol(connection);
|
||||
}
|
||||
});
|
||||
Via.getManager().getProviders().use(VersionProvider.class, new VAFServerVersionProvider(new BaseVersionProvider()));
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.nexia.viacombatium.impl;
|
||||
|
||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import net.raphimc.netminecraft.constants.MCPipeline;
|
||||
import net.raphimc.vialoader.netty.VLPipeline;
|
||||
import net.raphimc.vialoader.netty.ViaCodec;
|
||||
|
||||
public class ViaCombatiumVLPipeline extends VLPipeline {
|
||||
public ViaCombatiumVLPipeline(UserConnection user, ProtocolVersion version) {
|
||||
super(user, version);
|
||||
public ViaCombatiumVLPipeline(UserConnection user) {
|
||||
super(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.nexia.viacombatium.impl;
|
||||
|
||||
import com.nexia.viacombatium.platform.NativeVersionProvider;
|
||||
import com.nexia.viacombatium.platform.ViaCombatiumNativeVersionProvider;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.ViaAPI;
|
||||
import com.viaversion.viaversion.api.command.ViaCommandSender;
|
||||
@@ -27,7 +25,6 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class ViaVersionPlatformImpl implements ViaPlatform<UserConnection> {
|
||||
|
||||
private static final Logger LOGGER = new JLoggerToSLF4J(LoggerFactory.getLogger("ViaVersion"));
|
||||
|
||||
private final File dataFolder;
|
||||
@@ -35,16 +32,11 @@ public class ViaVersionPlatformImpl implements ViaPlatform<UserConnection> {
|
||||
private final ViaAPI<UserConnection> api;
|
||||
|
||||
public ViaVersionPlatformImpl(final File rootFolder) {
|
||||
this.dataFolder = new File(rootFolder, "ViaLoader");
|
||||
this.dataFolder = new File(rootFolder, "ViaCombatium");
|
||||
this.config = this.createConfig();
|
||||
this.api = this.createApi();
|
||||
}
|
||||
|
||||
public void init() {
|
||||
// We'll use it early for ViaInjector
|
||||
installNativeVersionProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Logger getLogger() {
|
||||
return LOGGER;
|
||||
@@ -52,7 +44,7 @@ public class ViaVersionPlatformImpl implements ViaPlatform<UserConnection> {
|
||||
|
||||
@Override
|
||||
public String getPlatformName() {
|
||||
return "ViaLoader";
|
||||
return "ViaCombatium";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,10 +130,6 @@ public class ViaVersionPlatformImpl implements ViaPlatform<UserConnection> {
|
||||
public void onReload() {
|
||||
}
|
||||
|
||||
protected void installNativeVersionProvider() {
|
||||
Via.getManager().getProviders().use(NativeVersionProvider.class, new ViaCombatiumNativeVersionProvider());
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonObject getDump() {
|
||||
JsonObject platformSpecific = new JsonObject();
|
||||
@@ -170,10 +158,6 @@ public class ViaVersionPlatformImpl implements ViaPlatform<UserConnection> {
|
||||
}).forEach(mods::add);
|
||||
|
||||
platformSpecific.add("mods", mods);
|
||||
NativeVersionProvider ver = Via.getManager().getProviders().get(NativeVersionProvider.class);
|
||||
if (ver != null) {
|
||||
platformSpecific.addProperty("native version", ver.getNativeServerProtocolVersion().getVersion());
|
||||
}
|
||||
return platformSpecific;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.nexia.viacombatium.mixin;
|
||||
|
||||
import com.nexia.viacombatium.impl.ViaCombatiumVLPipeline;
|
||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||
import com.viaversion.viaversion.connection.UserConnectionImpl;
|
||||
import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
|
||||
import io.netty.channel.Channel;
|
||||
import net.minecraft.network.Connection;
|
||||
import net.raphimc.vialoader.netty.CompressionReorderEvent;
|
||||
@@ -13,21 +9,12 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.nio.channels.SocketChannel;
|
||||
|
||||
@Mixin(Connection.class)
|
||||
public class ConnectionMixin {
|
||||
@Shadow private Channel channel;
|
||||
|
||||
@Inject(method = "setupCompression", at = @At("RETURN"))
|
||||
public void reorderCompression(int i, CallbackInfo ci) {
|
||||
private void reorderCompression(int i, CallbackInfo ci) {
|
||||
channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
|
||||
|
||||
if (channel instanceof SocketChannel) {
|
||||
UserConnection user = new UserConnectionImpl(channel);
|
||||
new ProtocolPipelineImpl(user);
|
||||
|
||||
channel.pipeline().addLast(new ViaCombatiumVLPipeline(user, user.getProtocolInfo().serverProtocolVersion()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.nexia.viacombatium.mixin;
|
||||
|
||||
import com.viaversion.viaversion.ViaManagerImpl;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(MinecraftServer.class)
|
||||
public class MinecraftServerMixin {
|
||||
@Inject(method = "stopServer", at = @At("TAIL"))
|
||||
private void onStop(CallbackInfo ci) {
|
||||
((ViaManagerImpl) Via.getManager()).destroy();
|
||||
}
|
||||
}
|
||||
@@ -2,10 +2,11 @@ package com.nexia.viacombatium.mixin;
|
||||
|
||||
import com.nexia.viacombatium.impl.ViaCombatiumVLPipeline;
|
||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import com.viaversion.viaversion.connection.UserConnectionImpl;
|
||||
import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import net.raphimc.netminecraft.netty.codec.PacketCodec;
|
||||
import net.raphimc.vialoader.netty.VLLegacyPipeline;
|
||||
import net.raphimc.vialoader.netty.ViaDecoder;
|
||||
import net.raphimc.vialoader.netty.ViaEncoder;
|
||||
@@ -14,19 +15,21 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.nio.channels.SocketChannel;
|
||||
import static com.nexia.viacombatium.ViaCombatium.logger;
|
||||
|
||||
@Mixin(targets = "net.minecraft.server.network.ServerConnectionListener$1")
|
||||
public class ServerConnectionMixin {
|
||||
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
|
||||
private void onInitChannel(Channel channel, CallbackInfo ci) {
|
||||
if (channel instanceof SocketChannel) {
|
||||
UserConnection user = new UserConnectionImpl(channel);
|
||||
logger.info("Initializing channel: " + channel);
|
||||
UserConnection user = new UserConnectionImpl(channel, true);
|
||||
new ProtocolPipelineImpl(user);
|
||||
|
||||
//channel.pipeline().addLast(new ViaCombatiumVLPipeline(user, ProtocolVersion.getProtocol(803)));
|
||||
logger.info("Adding VLLegacyPipeline");
|
||||
channel.pipeline().addBefore("encoder", VLLegacyPipeline.VIA_ENCODER_NAME, new ViaEncoder(user));
|
||||
channel.pipeline().addBefore("decoder", VLLegacyPipeline.VIA_DECODER_NAME, new ViaDecoder(user));
|
||||
//channel.pipeline().addLast(new ViaCombatiumVLPipeline(user));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.nexia.viacombatium.platform;
|
||||
|
||||
import com.viaversion.viaversion.api.platform.providers.Provider;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
|
||||
public interface NativeVersionProvider extends Provider {
|
||||
int getNativeServerVersion();
|
||||
|
||||
default ProtocolVersion getNativeServerProtocolVersion() {
|
||||
return ProtocolVersion.getProtocol(getNativeServerVersion());
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.nexia.viacombatium.platform;
|
||||
|
||||
import net.minecraft.SharedConstants;
|
||||
|
||||
public class ViaCombatiumNativeVersionProvider implements NativeVersionProvider {
|
||||
@Override
|
||||
public int getNativeServerVersion() {
|
||||
return SharedConstants.getCurrentVersion().getProtocolVersion();
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.nexia.viacombatium.util;
|
||||
|
||||
import com.nexia.viacombatium.ViaCombatium;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.lenni0451.reflect.ClassLoaders;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class ClassLoaderPriorityUtil {
|
||||
public static void loadOverridingJars() {
|
||||
final File jarsFolder = new File(FabricLoader.getInstance().getConfigDir().toAbsolutePath() + "/jars");
|
||||
if (!jarsFolder.exists()) {
|
||||
jarsFolder.mkdir();
|
||||
return;
|
||||
}
|
||||
|
||||
if (jarsFolder.isDirectory()) {
|
||||
for (File file : jarsFolder.listFiles()) {
|
||||
try {
|
||||
if (file.getName().endsWith(".jar")) {
|
||||
ClassLoaders.loadToFront(file.toURI().toURL());
|
||||
ViaCombatium.logger.warn("Loaded overriding jar {}", file.getName());
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
ViaCombatium.logger.error("Failed to load overriding jar {}", file.getName(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,11 +2,14 @@
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "com.nexia.viacombatium.mixin",
|
||||
"compatibilityLevel": "JAVA_21",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"mixins": [
|
||||
"ConnectionMixin",
|
||||
"ServerConnectionMixin"
|
||||
],
|
||||
"server": [
|
||||
"MinecraftServerMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user