package net.md_5.bungee.forge; import net.md_5.bungee.UserConnection; import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.protocol.packet.PluginMessage; /** * An interface that defines a Forge Handshake Server packet. * * @param <S> The State to transition to. */ public interface IForgeServerPacketHandler<S> { /** * Handles any {@link net.md_5.bungee.protocol.packet.PluginMessage} * packets. * * @param message The {@link net.md_5.bungee.protocol.packet.PluginMessage} * to handle. * @param ch The {@link ChannelWrapper} to send packets to. * @return The state to transition to. */ public S handle(PluginMessage message, ChannelWrapper ch); /** * Sends any {@link net.md_5.bungee.protocol.packet.PluginMessage} packets. * * @param message The {@link net.md_5.bungee.protocol.packet.PluginMessage} * to send. * @param con The {@link net.md_5.bungee.UserConnection} to send packets to * or read from. * @return The state to transition to. */ public S send(PluginMessage message, UserConnection con); }