Skip to content

Commit

Permalink
clean
Browse files Browse the repository at this point in the history
  • Loading branch information
TexBlock committed Jan 22, 2025
1 parent 188b6ef commit 99f06f0
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 62 deletions.
6 changes: 0 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ version = "$project.mod_version+mc$project.minecraft_version"
base.archivesName = project.archives_name

loom {
silentMojangMappingsLicense()

accessWidenerPath = file("src/main/resources/fabric-networking-api-v1.accesswidener")
}

Expand All @@ -27,10 +25,6 @@ repositories {
// for more information about repositories.
}

loom {
silentMojangMappingsLicense()
}

dependencies {
minecraft "net.minecraft:minecraft:$project.minecraft_version"
mappings(loom.layered {
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ loom.platform = neoforge

# Mod properties
mod_version = 0.1.0
maven_group = org.thinkingstudio.foxified_networking
maven_group = me.textrue.foxified_networking
archives_name = FoxifiedNetworkingAPI

# Minecraft properties
Expand All @@ -13,4 +13,4 @@ yarn_mappings=1.21.4+build.8
yarn_patch=1.21+build.4

# Dependencies
neoforge_version = 21.4.65-beta
neoforge_version = 21.4.72-beta
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.thinkingstudio.foxified_networking;
package me.textrue.foxified_networking;

import net.fabricmc.fabric.impl.networking.neo.NeoNetworkingImpl;
import net.neoforged.bus.api.IEventBus;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@

public class NeoClientCommonNetworking {
public static void onRegisterPacket(ICommonPacketListener listener, Set<Identifier> ids) {
NetworkPhase protocol = listener.getPhase();
if (protocol == NetworkPhase.CONFIGURATION) {
NetworkPhase phase = listener.getPhase();
if (phase == NetworkPhase.CONFIGURATION) {
listener.getMainThreadEventLoop().execute(() -> C2SConfigurationChannelEvents.REGISTER.invoker().onChannelRegister((ClientConfigurationNetworkHandler) listener, new NeoClientPacketSender(listener.getConnection()), MinecraftClient.getInstance(), List.copyOf(ids)));
} else if (protocol == NetworkPhase.PLAY) {
} else if (phase == NetworkPhase.PLAY) {
listener.getMainThreadEventLoop().execute(() -> C2SPlayChannelEvents.REGISTER.invoker().onChannelRegister((ClientPlayNetworkHandler) listener, new NeoClientPacketSender(listener.getConnection()), MinecraftClient.getInstance(), List.copyOf(ids)));
}
}

public static void onUnregisterPacket(ICommonPacketListener listener, Set<Identifier> ids) {
NetworkPhase protocol = listener.getPhase();
if (protocol == NetworkPhase.CONFIGURATION) {
NetworkPhase phase = listener.getPhase();
if (phase == NetworkPhase.CONFIGURATION) {
listener.getMainThreadEventLoop().execute(() -> C2SConfigurationChannelEvents.UNREGISTER.invoker().onChannelUnregister((ClientConfigurationNetworkHandler) listener, new NeoClientPacketSender(listener.getConnection()), MinecraftClient.getInstance(), List.copyOf(ids)));
} else if (protocol == NetworkPhase.PLAY) {
} else if (phase == NetworkPhase.PLAY) {
listener.getMainThreadEventLoop().execute(() -> C2SPlayChannelEvents.UNREGISTER.invoker().onChannelUnregister((ClientPlayNetworkHandler) listener, new NeoClientPacketSender(listener.getConnection()), MinecraftClient.getInstance(), List.copyOf(ids)));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,52 +29,52 @@ public class NeoNetworkRegistrar {
throw new UnsupportedOperationException();
});

private final NetworkPhase protocol;
private final NetworkPhase phase;

private final Map<Identifier, NeoPayloadHandler<?>> registeredPayloads = new HashMap<>();

public NeoNetworkRegistrar(NetworkPhase protocol) {
this.protocol = protocol;
public NeoNetworkRegistrar(NetworkPhase phase) {
this.phase = phase;
}

public static boolean hasCodecFor(NetworkPhase protocol, NetworkSide flow, Identifier id) {
PayloadTypeRegistryImpl<? extends PacketByteBuf> registry = getPayloadRegistry(protocol, flow);
public static boolean hasCodecFor(NetworkPhase phase, NetworkSide side, Identifier id) {
PayloadTypeRegistryImpl<? extends PacketByteBuf> registry = getPayloadRegistry(phase, side);
return registry.get(id) != null;
}

public static PayloadTypeRegistryImpl<? extends PacketByteBuf> getPayloadRegistry(NetworkPhase protocol, NetworkSide flow) {
if (protocol == NetworkPhase.PLAY) {
public static PayloadTypeRegistryImpl<? extends PacketByteBuf> getPayloadRegistry(NetworkPhase phase, NetworkSide flow) {
if (phase == NetworkPhase.PLAY) {
return flow == NetworkSide.SERVERBOUND ? PayloadTypeRegistryImpl.PLAY_C2S : PayloadTypeRegistryImpl.PLAY_S2C;
} else if (protocol == NetworkPhase.CONFIGURATION) {
} else if (phase == NetworkPhase.CONFIGURATION) {
return flow == NetworkSide.SERVERBOUND ? PayloadTypeRegistryImpl.CONFIGURATION_C2S : PayloadTypeRegistryImpl.CONFIGURATION_S2C;
} else {
throw new UnsupportedOperationException();
}
}

public <PAYLOAD extends CustomPayload, CONTEXT, HANDLER> boolean registerGlobalReceiver(CustomPayload.Id<PAYLOAD> type, NetworkSide packetFlow, HANDLER handler, Function<IPayloadContext, CONTEXT> ctxFactory, TriConsumer<HANDLER, PAYLOAD, CONTEXT> consumer) {
NeoPayloadHandler<PAYLOAD> neoHandler = getOrRegisterNativeHandler(type);
return neoHandler.registerGlobalHandler(packetFlow, handler, ctxFactory, consumer);
public <P extends CustomPayload, C, H> boolean registerGlobalReceiver(CustomPayload.Id<P> type, NetworkSide side, H handler, Function<IPayloadContext, C> ctxFactory, TriConsumer<H, P, C> consumer) {
NeoPayloadHandler<P> neoHandler = getOrRegisterNativeHandler(type);
return neoHandler.registerGlobalHandler(side, handler, ctxFactory, consumer);
}

public <HANDLER> HANDLER unregisterGlobalReceiver(Identifier id, NetworkSide flow) {
public <H> H unregisterGlobalReceiver(Identifier id, NetworkSide side) {
NeoPayloadHandler<?> neoHandler = registeredPayloads.get(id);
return neoHandler != null ? neoHandler.unregisterGlobalHandler(flow) : null;
return neoHandler != null ? neoHandler.unregisterGlobalHandler(side) : null;
}

public Set<Identifier> getGlobalReceivers(NetworkSide flow) {
public Set<Identifier> getGlobalReceivers(NetworkSide side) {
return registeredPayloads.entrySet().stream()
.filter(e -> e.getValue().hasGlobalHandler(flow))
.filter(e -> e.getValue().hasGlobalHandler(side))
.map(Map.Entry::getKey)
.collect(Collectors.toSet());
}

public <PAYLOAD extends CustomPayload, CONTEXT, HANDLER> boolean registerLocalReceiver(CustomPayload.Id<PAYLOAD> type, ICommonPacketListener listener, HANDLER handler, Function<IPayloadContext, CONTEXT> ctxFactory, TriConsumer<HANDLER, PAYLOAD, CONTEXT> consumer) {
NeoPayloadHandler<PAYLOAD> neoHandler = getOrRegisterNativeHandler(type);
public <P extends CustomPayload, C, H> boolean registerLocalReceiver(CustomPayload.Id<P> type, ICommonPacketListener listener, H handler, Function<IPayloadContext, C> ctxFactory, TriConsumer<H, P, C> consumer) {
NeoPayloadHandler<P> neoHandler = getOrRegisterNativeHandler(type);
return neoHandler.registerLocalReceiver(listener, handler, ctxFactory, consumer);
}

public <HANDLER> HANDLER unregisterLocalReceiver(Identifier id, ICommonPacketListener listener) {
public <H> H unregisterLocalReceiver(Identifier id, ICommonPacketListener listener) {
NeoPayloadHandler<?> neoHandler = registeredPayloads.get(id);
return neoHandler != null ? neoHandler.unregisterLocalHandler(listener) : null;
}
Expand All @@ -91,30 +91,30 @@ public Set<Identifier> getLocalSendable(ICommonPacketListener listener) {
if (payloadSetup == null) {
return Set.of();
}
return payloadSetup.channels().get(this.protocol).keySet();
return payloadSetup.channels().get(this.phase).keySet();
}

@SuppressWarnings("unchecked")
private <PAYLOAD extends CustomPayload> NeoPayloadHandler<PAYLOAD> getOrRegisterNativeHandler(CustomPayload.Id<PAYLOAD> type) {
return (NeoPayloadHandler<PAYLOAD>) registeredPayloads.computeIfAbsent(type.id(), k -> {
NeoPayloadHandler<PAYLOAD> handler = new NeoPayloadHandler<>();
private <P extends CustomPayload> NeoPayloadHandler<P> getOrRegisterNativeHandler(CustomPayload.Id<P> type) {
return (NeoPayloadHandler<P>) registeredPayloads.computeIfAbsent(type.id(), k -> {
NeoPayloadHandler<P> handler = new NeoPayloadHandler<>();
boolean setup = NetworkRegistryAccessor.getSetup();

NetworkRegistryAccessor.setSetup(false);
NetworkRegistry.register(type, (PacketCodec<? super PacketByteBuf, PAYLOAD>) DUMMY_CODEC, handler, List.of(protocol), Optional.empty(), "1.0", true);
NetworkRegistry.register(type, (PacketCodec<? super PacketByteBuf, P>) DUMMY_CODEC, handler, List.of(phase), Optional.empty(), "1.0", true);
NetworkRegistryAccessor.setSetup(setup);

// TODO Send registration message when registering late
return handler;
});
}

public static class NeoPayloadHandler<PAYLOAD extends CustomPayload> implements IPayloadHandler<PAYLOAD> {
private final Map<NetworkSide, NeoSubHandler<PAYLOAD, ?, ?>> globalReceivers = new HashMap<>();
private final Map<ICommonPacketListener, NeoSubHandler<PAYLOAD, ?, ?>> localReceivers = new HashMap<>();
public static class NeoPayloadHandler<P extends CustomPayload> implements IPayloadHandler<P> {
private final Map<NetworkSide, NeoSubHandler<P, ?, ?>> globalReceivers = new HashMap<>();
private final Map<ICommonPacketListener, NeoSubHandler<P, ?, ?>> localReceivers = new HashMap<>();

@Override
public void handle(PAYLOAD arg, IPayloadContext context) {
public void handle(P arg, IPayloadContext context) {
NeoSubHandler globalHandler = globalReceivers.get(context.flow());
if (globalHandler != null) {
context.enqueueWork(() -> globalHandler.consumer().accept(globalHandler.handler(), arg, globalHandler.ctxFactory().apply(context)));
Expand All @@ -125,13 +125,13 @@ public void handle(PAYLOAD arg, IPayloadContext context) {
}
}

public boolean hasGlobalHandler(NetworkSide flow) {
return globalReceivers.containsKey(flow);
public boolean hasGlobalHandler(NetworkSide side) {
return globalReceivers.containsKey(side);
}

public <CONTEXT, HANDLER> boolean registerGlobalHandler(NetworkSide flow, HANDLER original, Function<IPayloadContext, CONTEXT> ctxFactory, TriConsumer<HANDLER, PAYLOAD, CONTEXT> consumer) {
if (!hasGlobalHandler(flow)) {
globalReceivers.put(flow, new NeoSubHandler<>(original, ctxFactory, consumer));
public <C, H> boolean registerGlobalHandler(NetworkSide side, H original, Function<IPayloadContext, C> ctxFactory, TriConsumer<H, P, C> consumer) {
if (!hasGlobalHandler(side)) {
globalReceivers.put(side, new NeoSubHandler<>(original, ctxFactory, consumer));
return true;
}
return false;
Expand All @@ -141,7 +141,7 @@ public boolean hasLocalHandler(ICommonPacketListener listener) {
return localReceivers.containsKey(listener);
}

public <CONTEXT, HANDLER> boolean registerLocalReceiver(ICommonPacketListener listener, HANDLER original, Function<IPayloadContext, CONTEXT> ctxFactory, TriConsumer<HANDLER, PAYLOAD, CONTEXT> consumer) {
public <C, H> boolean registerLocalReceiver(ICommonPacketListener listener, H original, Function<IPayloadContext, C> ctxFactory, TriConsumer<H, P, C> consumer) {
if (!hasLocalHandler(listener)) {
localReceivers.put(listener, new NeoSubHandler<>(original, ctxFactory, consumer));
return true;
Expand All @@ -150,17 +150,17 @@ public <CONTEXT, HANDLER> boolean registerLocalReceiver(ICommonPacketListener li
}

@Nullable
public <HANDLER> HANDLER unregisterGlobalHandler(NetworkSide flow) {
NeoSubHandler subHandler = globalReceivers.remove(flow);
return subHandler != null ? (HANDLER) subHandler.handler() : null;
public <H> H unregisterGlobalHandler(NetworkSide side) {
NeoSubHandler subHandler = globalReceivers.remove(side);
return subHandler != null ? (H) subHandler.handler() : null;
}

@Nullable
public <HANDLER> HANDLER unregisterLocalHandler(ICommonPacketListener listener) {
public <H> H unregisterLocalHandler(ICommonPacketListener listener) {
NeoSubHandler subHandler = localReceivers.remove(listener);
return subHandler != null ? (HANDLER) subHandler.handler() : null;
return subHandler != null ? (H) subHandler.handler() : null;
}
}

record NeoSubHandler<PAYLOAD extends CustomPayload, CONTEXT, HANDLER>(HANDLER handler, Function<IPayloadContext, CONTEXT> ctxFactory, TriConsumer<HANDLER, PAYLOAD, CONTEXT> consumer) { }
record NeoSubHandler<P extends CustomPayload, C, H>(H handler, Function<IPayloadContext, C> ctxFactory, TriConsumer<H, P, C> consumer) { }
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,25 @@

public class NeoServerCommonNetworking {
public static void onRegisterPacket(ICommonPacketListener listener, Set<Identifier> ids) {
NetworkPhase protocol = listener.getPhase();
NetworkPhase phase = listener.getPhase();
MinecraftServer server = ((ServerCommonNetworkHandler) listener).server;
NeoServerPacketSender packetSender = new NeoServerPacketSender(listener.getConnection());

if (protocol == NetworkPhase.CONFIGURATION) {
if (phase == NetworkPhase.CONFIGURATION) {
listener.getMainThreadEventLoop().execute(() -> S2CConfigurationChannelEvents.REGISTER.invoker().onChannelRegister((ServerConfigurationNetworkHandler) listener, packetSender, server, List.copyOf(ids)));
} else if (protocol == NetworkPhase.PLAY) {
} else if (phase == NetworkPhase.PLAY) {
listener.getMainThreadEventLoop().execute(() -> S2CPlayChannelEvents.REGISTER.invoker().onChannelRegister((ServerPlayNetworkHandler) listener, packetSender, server, List.copyOf(ids)));
}
}

public static void onUnregisterPacket(ICommonPacketListener listener, Set<Identifier> ids) {
NetworkPhase protocol = listener.getPhase();
NetworkPhase phase = listener.getPhase();
MinecraftServer server = ((ServerCommonNetworkHandler) listener).server;
NeoServerPacketSender packetSender = new NeoServerPacketSender(listener.getConnection());

if (protocol == NetworkPhase.CONFIGURATION) {
if (phase == NetworkPhase.CONFIGURATION) {
listener.getMainThreadEventLoop().execute(() -> S2CConfigurationChannelEvents.UNREGISTER.invoker().onChannelUnregister((ServerConfigurationNetworkHandler) listener, packetSender, server, List.copyOf(ids)));
} else if (protocol == NetworkPhase.PLAY) {
} else if (phase == NetworkPhase.PLAY) {
listener.getMainThreadEventLoop().execute(() -> S2CPlayChannelEvents.UNREGISTER.invoker().onChannelUnregister((ServerPlayNetworkHandler) listener, packetSender, server, List.copyOf(ids)));
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/META-INF/neoforge.mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ logoFile = "icon.png"
[[dependencies.foxified_networking]]
modId = "neoforge"
type = "required"
versionRange = "[21.2,)"
versionRange = "[21.3,)"
ordering = "NONE"
side = "BOTH"

[[dependencies.foxified_networking]]
modId = "minecraft"
type = "required"
versionRange = "[1.21,)"
versionRange = "[1.21.3,)"
ordering = "NONE"
side = "BOTH"

Expand Down

0 comments on commit 99f06f0

Please sign in to comment.