NaturesAura/src/main/java/de/ellpeck/naturesaura/packet/PacketHandler.java

38 lines
2.1 KiB
Java
Raw Normal View History

2018-10-14 14:27:18 +02:00
package de.ellpeck.naturesaura.packet;
2020-01-22 01:35:47 +01:00
import de.ellpeck.naturesaura.NaturesAura;
2021-12-04 15:40:09 +01:00
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.simple.SimpleChannel;
2020-01-22 01:35:47 +01:00
2018-10-14 14:27:18 +02:00
public final class PacketHandler {
2020-01-22 23:21:52 +01:00
private static final String VERSION = "1";
2020-01-22 01:35:47 +01:00
private static SimpleChannel network;
2018-10-14 14:27:18 +02:00
public static void init() {
2022-06-27 15:24:04 +02:00
PacketHandler.network = NetworkRegistry.newSimpleChannel(new ResourceLocation(NaturesAura.MOD_ID, "network"), () -> PacketHandler.VERSION, PacketHandler.VERSION::equals, PacketHandler.VERSION::equals);
PacketHandler.network.registerMessage(0, PacketParticleStream.class, PacketParticleStream::toBytes, PacketParticleStream::fromBytes, PacketParticleStream::onMessage);
PacketHandler.network.registerMessage(1, PacketParticles.class, PacketParticles::toBytes, PacketParticles::fromBytes, PacketParticles::onMessage);
PacketHandler.network.registerMessage(2, PacketAuraChunk.class, PacketAuraChunk::toBytes, PacketAuraChunk::fromBytes, PacketAuraChunk::onMessage);
PacketHandler.network.registerMessage(3, PacketClient.class, PacketClient::toBytes, PacketClient::fromBytes, PacketClient::onMessage);
2020-01-22 01:35:47 +01:00
}
2021-12-04 15:40:09 +01:00
public static void sendToAllLoaded(Level level, BlockPos pos, Object message) {
2022-06-27 15:24:04 +02:00
PacketHandler.network.send(PacketDistributor.TRACKING_CHUNK.with(() -> level.getChunkAt(pos)), message);
2018-10-14 14:27:18 +02:00
}
2021-12-04 15:40:09 +01:00
public static void sendToAllAround(Level level, BlockPos pos, int range, Object message) {
2022-06-27 15:24:04 +02:00
PacketHandler.network.send(PacketDistributor.NEAR.with(() -> new PacketDistributor.TargetPoint(pos.getX(), pos.getY(), pos.getZ(), range, level.dimension())), message);
2018-10-14 14:27:18 +02:00
}
2021-12-04 15:40:09 +01:00
public static void sendTo(Player player, Object message) {
2022-06-27 15:24:04 +02:00
PacketHandler.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), message);
2020-01-22 01:35:47 +01:00
}
2018-10-14 14:27:18 +02:00
}