Renamed and reworked C2SKeyPress packet class.

This commit is contained in:
2022-05-21 21:16:11 +01:00
parent 1c260166f2
commit a9086486fa
2 changed files with 45 additions and 55 deletions

View File

@ -1,55 +0,0 @@
package dev.micle.loginprotection.network;
import dev.micle.loginprotection.LoginProtection;
import dev.micle.loginprotection.setup.Config;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraftforge.network.NetworkEvent;
import java.util.function.Supplier;
public class C2SKeyPress {
public C2SKeyPress() { }
public static void encode(final C2SKeyPress msg, final FriendlyByteBuf packet_buffer) { }
public static C2SKeyPress decode(final FriendlyByteBuf packet_buffer) {
return new C2SKeyPress();
}
public static void handle(final C2SKeyPress msg, final Supplier<NetworkEvent.Context> context_supplier) {
final NetworkEvent.Context context = context_supplier.get();
context.enqueueWork(() -> {
final ServerPlayer sender = context.getSender();
if (sender == null) { return; }
if (LoginProtection.protected_players.getPlayer(sender.getUUID()) == null) { return; }
if (!LoginProtection.protected_players.getPlayer(sender.getUUID()).isLoading()) { return; }
if (!Config.Server.POST_GRACE_ENABLED.get()) {
LoginProtection.protected_players.removePlayer(sender.getUUID());
sender.sendMessage(new TextComponent("[LoginProtection] You are now seen as active."), sender.getUUID());
} else {
LoginProtection.protected_players.getPlayer(sender.getUUID()).setLoading(false);
sender.sendMessage(new TextComponent("[LoginProtection] Grace period started!"), sender.getUUID());
}
if (sender.isInWater()) {
if (Config.Server.POST_REFILL_AIR_ENABLED.get()) {
sender.setAirSupply(sender.getMaxAirSupply());
}
if (Config.Server.POST_WATER_ENABLED.get()) {
sender.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, Config.Server.POST_WATER_DURATION.get()*20, 0));
}
}
if (sender.isInLava() && Config.Server.POST_LAVA_ENABLED.get()) {
sender.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, Config.Server.POST_LAVA_DURATION.get()*20, 0));
}
if (sender.isOnFire() && Config.Server.POST_FIRE_ENABLED.get()) {
sender.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, Config.Server.POST_FIRE_DURATION.get()*20, 0));
}
});
context.setPacketHandled(true);
}
}

View File

@ -0,0 +1,45 @@
package dev.micle.loginprotection.network;
import dev.micle.loginprotection.data.ProtectedPlayer;
import dev.micle.loginprotection.data.ProtectedPlayerManager;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.network.NetworkEvent;
import java.util.function.Supplier;
public class ClientInputPacket {
public ClientInputPacket() {}
public static void encode(final ClientInputPacket packet, final FriendlyByteBuf buffer) {
NetworkManager.writeVersionInfo(buffer, false);
}
public static ClientInputPacket decode(final FriendlyByteBuf buffer) {
NetworkManager.checkVersion(buffer);
return new ClientInputPacket();
}
public static void handle(final ClientInputPacket packet, final Supplier<NetworkEvent.Context> contextSupplier) {
final NetworkEvent.Context context = contextSupplier.get();
context.enqueueWork(() -> {
// Get sender
ServerPlayer sender = context.getSender();
if (sender == null) {
return;
}
// Get protected player
ProtectedPlayer protectedPlayer = ProtectedPlayerManager.getPlayer(sender.getUUID());
if (protectedPlayer == null) {
return;
}
// Update player state if they are not active
if (!protectedPlayer.getState().equals(ProtectedPlayer.State.ACTIVE)) {
ProtectedPlayerManager.updateState(protectedPlayer.getPlayerUUID());
}
});
context.setPacketHandled(true);
}
}