TheBrokenRail
c19790efc4
All checks were successful
RelicCraft/pipeline/head This commit looks good
Initial Commit
40 lines
1.6 KiB
Java
40 lines
1.6 KiB
Java
package com.thebrokenrail.reliccraft.packet;
|
|
|
|
import com.thebrokenrail.reliccraft.RelicCraft;
|
|
import com.thebrokenrail.reliccraft.item.TimeDilaterItem;
|
|
import io.netty.buffer.Unpooled;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.fabricmc.fabric.api.network.PacketContext;
|
|
import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
|
|
import net.minecraft.client.MinecraftClient;
|
|
import net.minecraft.entity.player.PlayerEntity;
|
|
import net.minecraft.network.Packet;
|
|
import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket;
|
|
import net.minecraft.util.Identifier;
|
|
import net.minecraft.util.PacketByteBuf;
|
|
import net.minecraft.world.World;
|
|
|
|
@SuppressWarnings("unused")
|
|
public class UpdateTimeDilationS2CPacket {
|
|
public static void send(World world, TimeDilaterItem.TimeSpeed speed) {
|
|
PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer());
|
|
buf.writeString(speed.name());
|
|
|
|
Packet<?> packet = new CustomPayloadS2CPacket(new Identifier(RelicCraft.NAMESPACE, "update_time_dilation"), buf);
|
|
for (PlayerEntity player : world.getPlayers()) {
|
|
ServerSidePacketRegistry.INSTANCE.sendToPlayer(player, packet);
|
|
}
|
|
}
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public static void handle(PacketContext context, PacketByteBuf buf) {
|
|
TimeDilaterItem.TimeSpeed speed = TimeDilaterItem.TimeSpeed.valueOf(buf.readString());
|
|
|
|
MinecraftClient client = MinecraftClient.getInstance();
|
|
assert client.world != null;
|
|
|
|
((TimeDilaterItem.DilatedWorld) client.world).setTimeSpeed(speed);
|
|
}
|
|
}
|