package net.CyanWool.network; import net.CyanWool.CyanServer; import net.CyanWool.api.entity.player.Player; import net.CyanWool.network.handlers.PlaySessionAdapter; import org.spacehq.mc.auth.GameProfile; import org.spacehq.mc.protocol.MinecraftProtocol; import org.spacehq.mc.protocol.ProtocolConstants; import org.spacehq.mc.protocol.ProtocolMode; import org.spacehq.packetlib.event.server.ServerAdapter; import org.spacehq.packetlib.event.server.SessionAddedEvent; import org.spacehq.packetlib.event.server.SessionRemovedEvent; public class CyanServerListener extends ServerAdapter { private CyanServer server; public CyanServerListener(CyanServer server) { this.server = server; } @Override public void sessionAdded(SessionAddedEvent event) { event.getSession().addListener(new PlaySessionAdapter(server)); } @Override public void sessionRemoved(SessionRemovedEvent event) { // FOR TODO: Customize leave message if (((MinecraftProtocol) event.getSession().getPacketProtocol()).getMode() == ProtocolMode.GAME) { GameProfile profile = event.getSession().getFlag(ProtocolConstants.PROFILE_KEY); Player player = server.getPlayer(profile.getName()); server.getPlayerManager().leavePlayer(player); } } }