48 lines
1.5 KiB
Java
Raw Normal View History

2023-01-31 13:12:58 +03:00
package ru.magistu.siegemachines.network;
import io.netty.channel.ChannelHandler;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.network.NetworkEvent;
2025-03-03 22:16:00 +11:00
import ru.magistu.siegemachines.entity.machine.Machine;
2023-01-31 13:12:58 +03:00
import java.util.function.Supplier;
@ChannelHandler.Sharable
2025-03-03 22:16:00 +11:00
public class PacketMachineControl {
public PacketMachineControl() {
}
2023-01-31 13:12:58 +03:00
2025-03-03 22:16:00 +11:00
public static PacketMachineControl read(FriendlyByteBuf buf) {
2023-01-31 13:12:58 +03:00
return new PacketMachineControl();
}
2025-03-03 22:16:00 +11:00
public static void write(PacketMachineControl message, FriendlyByteBuf buf) {
}
2023-01-31 13:12:58 +03:00
2025-03-03 22:16:00 +11:00
public static class Handler {
public static void handle(PacketMachineControl packet, Supplier<NetworkEvent.Context> ctx) {
2023-01-31 13:12:58 +03:00
NetworkEvent.Context context = ctx.get();
2025-03-03 22:16:00 +11:00
if (context.getDirection().getReceptionSide() == LogicalSide.SERVER) {
2023-01-31 13:12:58 +03:00
context.enqueueWork(() -> PacketMachineControl.handleServerSide(packet, context.getSender()));
2025-03-03 22:16:00 +11:00
}
2023-01-31 13:12:58 +03:00
context.setPacketHandled(true);
}
}
2025-03-03 22:16:00 +11:00
public static void handleServerSide(PacketMachineControl packet, ServerPlayer player) {
if (packet == null || player == null || !player.isPassenger()) {
return;
}
2023-01-31 13:12:58 +03:00
2025-03-03 22:16:00 +11:00
Entity entity = player.getVehicle();
if (!(entity instanceof Machine machine)) {
2023-01-31 13:12:58 +03:00
return;
}
2025-03-03 22:16:00 +11:00
machine.setTurretRotations(player.getXRot(), player.getYRot());
}
2023-01-31 13:12:58 +03:00
}