Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
259f597
Version bump
p0t4t0sandwich Apr 13, 2026
0dfcf3d
TaterLibLite bump
p0t4t0sandwich Apr 13, 2026
f816c7a
Added new size assertion to checkIntegrity
p0t4t0sandwich Apr 13, 2026
8339dcc
Migrate to netty pipelines for login query packets, yet to deprecate …
p0t4t0sandwich Apr 13, 2026
3742945
Removed obsolete type adapters
p0t4t0sandwich Apr 13, 2026
77a49b7
Simplified packet sending and added error listener
p0t4t0sandwich Apr 14, 2026
a042915
Removed redundant mixins
p0t4t0sandwich Apr 14, 2026
ddf560a
Further simplified channel getter and init listener
p0t4t0sandwich Apr 14, 2026
ae8f075
Query packet compatibility helpers and preprocessor are no longer needed
p0t4t0sandwich Apr 14, 2026
ed9320e
No longer need to track transaction ids
p0t4t0sandwich Apr 14, 2026
e2f3ec5
Fixed disconnect messages not being sent correctly on some versions
p0t4t0sandwich Apr 14, 2026
0ff1c93
Remove unused class
p0t4t0sandwich Apr 14, 2026
76f1b48
Remove unused dependency
p0t4t0sandwich Apr 14, 2026
582f791
Move NeoForge Config
p0t4t0sandwich Apr 14, 2026
fcd362c
Move display-test boostrap
p0t4t0sandwich Apr 14, 2026
fba44bd
Move Forge Config
p0t4t0sandwich Apr 14, 2026
efb2b0e
Added config checks for CrossStich and ModernForwarding inits
p0t4t0sandwich Apr 14, 2026
f087a70
Clean up initializers
p0t4t0sandwich Apr 14, 2026
c5c8ef3
Formatting
p0t4t0sandwich Apr 15, 2026
9f2c068
Added version property to Mod annotations to silence warnings
p0t4t0sandwich Apr 15, 2026
718660e
Got rid of redundant error handling
p0t4t0sandwich Apr 19, 2026
5ffaeb0
Updated network lib
p0t4t0sandwich Apr 19, 2026
332016e
Removed display test in favour for mods.toml
p0t4t0sandwich Apr 20, 2026
5f5f16d
Added network dependency to shadowJar
p0t4t0sandwich Apr 20, 2026
8961ddf
Update doc
p0t4t0sandwich Apr 20, 2026
f2f8460
Fix min ranges for post-1.17 Searge mixins/entrypoints
p0t4t0sandwich Apr 20, 2026
b6c1586
Updated compat doc
p0t4t0sandwich Apr 21, 2026
88e089e
Updated buildscripts
p0t4t0sandwich Apr 21, 2026
5b21de4
Clean up Netty handlers
p0t4t0sandwich Apr 21, 2026
d6456a5
TaterLibLite version bump
p0t4t0sandwich Apr 21, 2026
118a0a2
Version bump
p0t4t0sandwich Apr 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ subprojects {
rootProject.libs.taterlib.lite.base,
rootProject.libs.taterlib.lite.core,
rootProject.libs.taterlib.lite.metadata,
rootProject.libs.taterlib.lite.muxins
rootProject.libs.taterlib.lite.muxins,
rootProject.libs.taterlib.lite.network
).forEach {
mainCompileOnly(it)
}
Expand Down
2 changes: 2 additions & 0 deletions common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@ dependencies {
compileOnly(libs.mixin)
compileOnly(libs.netty.buffer)
compileOnly(libs.netty.codec)
compileOnly(libs.netty.unix.common)
compileOnly(libs.asm.tree)

compileOnly(libs.entrypoint.spoof)
implementation(libs.taterlib.lite.base)
implementation(libs.taterlib.lite.core)
implementation(libs.taterlib.lite.metadata)
implementation(libs.taterlib.lite.muxins)
implementation(libs.taterlib.lite.network)
}

tasks.withType<ProcessResources> {
Expand Down
21 changes: 8 additions & 13 deletions common/src/main/java/org/adde0109/pcf/PCF.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.adde0109.pcf;

import static dev.neuralnexus.taterapi.network.Protocol.map;

import dev.neuralnexus.taterapi.loader.EntrypointLoader;
import dev.neuralnexus.taterapi.meta.Constraint;
import dev.neuralnexus.taterapi.meta.Constraints;
Expand All @@ -10,8 +12,7 @@
import dev.neuralnexus.taterapi.meta.ModResource;
import dev.neuralnexus.taterapi.meta.Platform;
import dev.neuralnexus.taterapi.meta.Platforms;
import dev.neuralnexus.taterapi.network.NetworkRegistry;
import dev.neuralnexus.taterapi.registries.AdapterRegistry;
import dev.neuralnexus.taterapi.network.PayloadRegistry;

import org.adde0109.pcf.forwarding.Mode;
import org.adde0109.pcf.forwarding.compatibility.prelogin.ArclightPreLogin;
Expand Down Expand Up @@ -79,8 +80,9 @@ void onInit() {

// Modern forwarding init
if (this.forwarding().enabled() && this.forwarding().mode().equals(Mode.MODERN)) {
NetworkRegistry.registerQueryPayload(
PlayerInfoQueryPayload.IDENTIFIER, PlayerInfoQueryPayload.STREAM_CODEC);
PayloadRegistry.register(
PlayerInfoQueryPayload.TYPE,
map(PlayerInfoQueryPayload.IDENTIFIER, MinecraftVersions.V7_2));

if (Constraint.builder().platform(Platforms.ARCLIGHT).result()) {
logger.debug("Arclight detected, applying pre-login post processor");
Expand Down Expand Up @@ -198,12 +200,12 @@ public static void forceLoadConfig() {
.getMethod("reload")
.invoke(null);
} else {
Class.forName("org.adde0109.pcf.v16_5.forge.Config")
Class.forName("org.adde0109.pcf.v26_1.forge.Config")
.getMethod("reload")
.invoke(null);
}
} else if (Constraint.builder().platform(Platforms.NEOFORGE).result()) {
Class.forName("org.adde0109.pcf.v20_2.neoforge.Config")
Class.forName("org.adde0109.pcf.v26_1.neoforge.Config")
.getMethod("reload")
.invoke(null);
}
Expand All @@ -215,13 +217,6 @@ public static void forceLoadConfig() {
}
}

private static final AdapterRegistry ADAPTER_REGISTRY = new AdapterRegistry();

@ApiStatus.Internal
public AdapterRegistry adapters() {
return ADAPTER_REGISTRY;
}

private Forwarding forwarding;

public Forwarding forwarding() {
Expand Down
1 change: 1 addition & 0 deletions common/src/main/java/org/adde0109/pcf/PCFForge.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
value = PCF.MOD_ID,
modid = PCF.MOD_ID,
name = PCF.MOD_NAME,
version = PCF.VERSION,
useMetadata = true,
serverSideOnly = true,
acceptableRemoteVersions = "*")
Expand Down
7 changes: 6 additions & 1 deletion common/src/main/java/org/adde0109/pcf/PCFForgeLegacy.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@

import cpw.mods.fml.common.Mod;

@Mod(modid = PCF.MOD_ID, name = PCF.MOD_NAME, acceptableRemoteVersions = "*", useMetadata = true)
@Mod(
modid = PCF.MOD_ID,
name = PCF.MOD_NAME,
version = PCF.VERSION,
acceptableRemoteVersions = "*",
useMetadata = true)
public final class PCFForgeLegacy {
public PCFForgeLegacy() {
PCF.instance().onInit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ public static boolean shouldNotWrapArgument(final @NonNull String identifier) {
if (entry == null) {
PCF.logger.debug(
"Wrapping entryless argument type: " + argumentType.getClass().getName());
buf.writeResourceLocation(MOD_ARGUMENT_INDICATOR);
buf.writeResourceLocation(EMPTY_IDENTIFIER);
buf.writeIdentifier(MOD_ARGUMENT_INDICATOR);
buf.writeIdentifier(EMPTY_IDENTIFIER);
buf.writeVarInt(ZERO_LENGTH);
return;
}

final String identifier = entry.bridge$identifier();
if (shouldNotWrapArgument(identifier)) {
buf.writeResourceLocation(identifier);
buf.writeIdentifier(identifier);
serializer.bridge$serializeToNetwork(argumentType, buf);
PCF.logger.debug("Not wrapping argument with identifier: " + identifier);
return;
Expand All @@ -93,8 +93,8 @@ public static boolean shouldNotWrapArgument(final @NonNull String identifier) {
+ entry.getClass().getName());

// Serialize wrapped argument type
buf.writeResourceLocation(MOD_ARGUMENT_INDICATOR);
buf.writeResourceLocation(entry.bridge$identifier());
buf.writeIdentifier(MOD_ARGUMENT_INDICATOR);
buf.writeIdentifier(entry.bridge$identifier());

final ByteBuf extraData = Unpooled.buffer();
serializer.bridge$serializeToNetwork(argumentType, extraData);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
package org.adde0109.pcf.forwarding.modern;

import io.netty.channel.Channel;

import org.jspecify.annotations.NonNull;
import org.jspecify.annotations.Nullable;

import java.net.InetSocketAddress;

public interface ConnectionBridge {
InetSocketAddress bridge$address();
@NonNull InetSocketAddress bridge$address();

void bridge$address(final @NonNull InetSocketAddress address);

@NonNull Channel bridge$channel();

void bridge$address(InetSocketAddress address);
@Nullable Object bridge$getPacketListener();

void bridge$send(Object packet);
default void bridge$send(final @NonNull Object packet) {
this.bridge$channel().writeAndFlush(packet).addListener(ModernForwarding::errorListener);
}
}
Loading