package net.glowstone.net.handler.play.player; import com.flowpowered.network.MessageHandler; import net.glowstone.entity.GlowPlayer; import net.glowstone.net.GlowSession; import net.glowstone.net.message.play.player.SpectateMessage; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.Entity; import java.util.Objects; public final class SpectateHandler implements MessageHandler<GlowSession, SpectateMessage> { @Override public void handle(GlowSession session, SpectateMessage message) { GlowPlayer player = session.getPlayer(); if (player.getGameMode() == GameMode.SPECTATOR && !Objects.equals(player.getProfile().getUniqueId(), message.getTarget())) { Entity entity = Bukkit.getEntity(message.getTarget()); if (entity != null) { player.setSpectatorTarget(entity); } } } }