Renamed and reworked C2SKeyPress packet class.
This commit is contained in:
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
45
src/main/java/dev/micle/loginprotection/network/ClientInputPacket.java
Executable file
45
src/main/java/dev/micle/loginprotection/network/ClientInputPacket.java
Executable 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user