Fix packet issues

This commit is contained in:
zontreck 2023-12-16 01:29:28 -07:00
parent f83dc88097
commit 167b1badeb
3 changed files with 55 additions and 29 deletions

View file

@ -11,6 +11,7 @@ import dev.zontreck.ariaslib.util.DelayedExecutorService;
import dev.zontreck.essentials.configs.AEClientConfig;
import dev.zontreck.essentials.configs.AEServerConfig;
import dev.zontreck.essentials.gui.HeartsRenderer;
import dev.zontreck.essentials.networking.ModMessages;
import dev.zontreck.essentials.networking.S2CUpdateHearts;
import dev.zontreck.libzontreck.events.RegisterPacketsEvent;
import net.minecraftforge.fml.config.ModConfig;
@ -54,6 +55,7 @@ public class AriasEssentials {
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, AEServerConfig.SPEC, "arias-essentials-server.toml");
ModMessages.register();
@ -68,11 +70,6 @@ public class AriasEssentials {
{
}
@SubscribeEvent
public void onRegisterPackets(RegisterPacketsEvent ev){
ev.packets.add(new S2CUpdateHearts());
}
@SubscribeEvent
public void onServerStart(final ServerStartedEvent ev)

View file

@ -0,0 +1,52 @@
package dev.zontreck.essentials.networking;
import dev.zontreck.essentials.AriasEssentials;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.simple.SimpleChannel;
public class ModMessages {
private static SimpleChannel INSTANCE;
private static int PACKET_ID = 0;
private static int id()
{
return PACKET_ID++;
}
public static void register()
{
SimpleChannel net = NetworkRegistry.ChannelBuilder.named(new ResourceLocation(AriasEssentials.MODID, "messages"))
.networkProtocolVersion(()-> "1.0")
.clientAcceptedVersions(s->true)
.serverAcceptedVersions(s->true)
.simpleChannel();
INSTANCE=net;
net.messageBuilder(S2CUpdateHearts.class, id(), NetworkDirection.PLAY_TO_CLIENT)
.decoder(S2CUpdateHearts::new)
.encoder(S2CUpdateHearts::toBytes)
.consumerMainThread(S2CUpdateHearts::handle)
.add();
}
public static <MSG> void sendToServer(MSG message){
INSTANCE.sendToServer(message);
}
public static <MSG> void sendToPlayer(MSG message, ServerPlayer player)
{
INSTANCE.send(PacketDistributor.PLAYER.with(()->player), message);
}
public static <MSG> void sendToAll(MSG message)
{
INSTANCE.send(PacketDistributor.ALL.noArg(), message);
}
}

View file

@ -11,7 +11,7 @@ import net.minecraftforge.network.simple.SimpleChannel;
import java.util.function.Supplier;
public class S2CUpdateHearts implements IPacket
public class S2CUpdateHearts
{
public boolean current;
@ -27,22 +27,10 @@ public class S2CUpdateHearts implements IPacket
public S2CUpdateHearts(){}
@Override
public void deserialize(CompoundTag compoundTag) {
}
@Override
public void serialize(CompoundTag compoundTag) {
}
@Override
public void toBytes(FriendlyByteBuf friendlyByteBuf) {
friendlyByteBuf.writeBoolean(current);
}
@Override
public boolean handle(Supplier<NetworkEvent.Context> supplier) {
NetworkEvent.Context ctx=supplier.get();
@ -52,15 +40,4 @@ public class S2CUpdateHearts implements IPacket
return true;
}
@Override
public NetworkDirection getDirection() {
return NetworkDirection.PLAY_TO_CLIENT;
}
@Override
public void register(SimpleChannel simpleChannel) {
ServerUtilities.registerPacket(simpleChannel, S2CUpdateHearts.class, this, S2CUpdateHearts::new);
}
}