[CLEANUP] YEET old networking system
This commit is contained in:
@@ -1,87 +0,0 @@
|
||||
package com.hypherionmc.craterlib.network;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.hypherionmc.craterlib.core.network.CraterNetworkHandler;
|
||||
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
||||
import com.hypherionmc.craterlib.core.network.PacketDirection;
|
||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author HypherionSA
|
||||
* @date 24/09/2022
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public class FabricNetworkHandler implements CraterNetworkHandler {
|
||||
|
||||
private static final Map<String, FabricNetworkHandler> NETWORK_HANDLERS = Maps.newConcurrentMap();
|
||||
private final Map<Class<? extends CraterPacket<?>>, PacketData> packets = Maps.newIdentityHashMap();
|
||||
|
||||
private final String modid;
|
||||
private final AtomicInteger packetID = new AtomicInteger();
|
||||
|
||||
private FabricNetworkHandler(String modid) {
|
||||
this.modid = modid;
|
||||
}
|
||||
|
||||
public synchronized static CraterNetworkHandler of(String modId) {
|
||||
return NETWORK_HANDLERS.computeIfAbsent(modId, FabricNetworkHandler::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends CraterPacket<T>> void registerPacket(Class<T> clazz, Supplier<T> supplier, PacketDirection packetDirection) {
|
||||
ResourceLocation channelName = this.nextId();
|
||||
this.packets.put(clazz, new PacketData(clazz, channelName, packetDirection));
|
||||
|
||||
final Function<FriendlyByteBuf, CraterPacket<?>> decoder = buf -> Util.make(supplier.get(), message -> message.read(buf));
|
||||
|
||||
switch (packetDirection) {
|
||||
case TO_CLIENT ->
|
||||
FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerClientReceiver(channelName, decoder);
|
||||
case TO_SERVER ->
|
||||
FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerServerReceiver(channelName, decoder);
|
||||
}
|
||||
}
|
||||
|
||||
private ResourceLocation nextId() {
|
||||
return new ResourceLocation(this.modid, "play/" + this.packetID.getAndIncrement());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet<?> toServerBound(CraterPacket<?> packet) {
|
||||
if (this.packets.get(packet.getClass()).direction() != PacketDirection.TO_SERVER)
|
||||
throw new IllegalStateException("Attempted sending message to wrong side, expected %s, was %s".formatted(PacketDirection.TO_SERVER, PacketDirection.TO_CLIENT));
|
||||
return this.toPacket(ClientPlayNetworking::createC2SPacket, packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet<?> toClientBound(CraterPacket<?> packet) {
|
||||
if (this.packets.get(packet.getClass()).direction() != PacketDirection.TO_CLIENT)
|
||||
throw new IllegalStateException("Attempted sending message to wrong side, expected %s, was %s".formatted(PacketDirection.TO_CLIENT, PacketDirection.TO_SERVER));
|
||||
return this.toPacket(ServerPlayNetworking::createS2CPacket, packet);
|
||||
}
|
||||
|
||||
private Packet<?> toPacket(BiFunction<ResourceLocation, FriendlyByteBuf, Packet<?>> packetFactory, CraterPacket<?> message) {
|
||||
ResourceLocation identifier = this.packets.get(message.getClass()).identifier();
|
||||
FriendlyByteBuf byteBuf = PacketByteBufs.create();
|
||||
message.write(byteBuf);
|
||||
return packetFactory.apply(identifier, byteBuf);
|
||||
}
|
||||
|
||||
private record PacketData(Class<? extends CraterPacket<?>> clazz, ResourceLocation identifier,
|
||||
PacketDirection direction) {
|
||||
|
||||
}
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
package com.hypherionmc.craterlib.network;
|
||||
|
||||
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
||||
import com.hypherionmc.craterlib.network.impl.FabricClientNetworkHelper;
|
||||
import com.hypherionmc.craterlib.network.impl.FabricServerNetworkHelper;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public interface FabricNetworkHelper {
|
||||
|
||||
public static FabricNetworkHelper getForDist(EnvType dist) {
|
||||
switch (dist) {
|
||||
case CLIENT -> {
|
||||
return new FabricClientNetworkHelper();
|
||||
}
|
||||
case SERVER -> {
|
||||
return new FabricServerNetworkHelper();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/* FABRIC ONLY */
|
||||
void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function<FriendlyByteBuf, @NotNull CraterPacket<?>> factory);
|
||||
|
||||
void registerServerReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory);
|
||||
|
||||
}
|
@@ -1,24 +0,0 @@
|
||||
package com.hypherionmc.craterlib.network.impl;
|
||||
|
||||
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.multiplayer.ClientPacketListener;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public class FabricClientNetworkHelper extends FabricServerNetworkHelper {
|
||||
|
||||
@Override
|
||||
public void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function<FriendlyByteBuf, CraterPacket<?>> factory) {
|
||||
ClientPlayNetworking.registerGlobalReceiver(channelName, (Minecraft client, ClientPacketListener handler, FriendlyByteBuf buf, PacketSender responseSender) -> {
|
||||
CraterPacket<?> packet = factory.apply(buf);
|
||||
client.execute(() -> packet.handle(client.player, client));
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,30 +0,0 @@
|
||||
package com.hypherionmc.craterlib.network.impl;
|
||||
|
||||
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
||||
import com.hypherionmc.craterlib.network.FabricNetworkHelper;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.network.ServerGamePacketListenerImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public class FabricServerNetworkHelper implements FabricNetworkHelper {
|
||||
@Override
|
||||
public void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function<FriendlyByteBuf, @NotNull CraterPacket<?>> factory) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerServerReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory) {
|
||||
ServerPlayNetworking.registerGlobalReceiver(channelName, (MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf, PacketSender responseSender) -> {
|
||||
CraterPacket<?> packet = factory.apply(buf);
|
||||
server.execute(() -> packet.handle(player, server));
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user