Created new packet for sending the player state to the client.

This commit is contained in:
2022-05-22 03:15:47 +01:00
parent b69fd80c5d
commit 9093966c07

View File

@ -0,0 +1,34 @@
package dev.micle.loginprotection.network;
import dev.micle.loginprotection.data.ProtectedPlayer;
import dev.micle.loginprotection.proxy.Proxy;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.network.NetworkEvent;
import java.util.function.Supplier;
public class ServerPlayerStatePacket {
private final ProtectedPlayer.State state;
public ServerPlayerStatePacket(ProtectedPlayer.State state) {
this.state = state;
}
public static void encode(final ServerPlayerStatePacket packet, final FriendlyByteBuf buffer) {
NetworkManager.writeVersionInfo(buffer, true);
buffer.writeUtf(packet.state.toString());
}
public static ServerPlayerStatePacket decode(final FriendlyByteBuf buffer) {
NetworkManager.checkVersion(buffer);
return new ServerPlayerStatePacket(ProtectedPlayer.State.valueOf(buffer.readUtf()));
}
public static void handle(final ServerPlayerStatePacket packet, final Supplier<NetworkEvent.Context> contextSupplier) {
final NetworkEvent.Context context = contextSupplier.get();
context.enqueueWork(() -> {
Proxy.Client.setPlayerState(packet.state);
});
context.setPacketHandled(true);
}
}