Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.hannes.net.netty;
- import org.hannes.PlayerHandler;
- import org.hannes.entity.Player;
- import org.hannes.net.RSBuffer;
- import org.hannes.net.packet.PacketHandler;
- import org.jboss.netty.channel.Channel;
- import org.jboss.netty.channel.ChannelHandlerContext;
- import org.jboss.netty.channel.ChannelLocal;
- import org.jboss.netty.channel.ChannelStateEvent;
- import org.jboss.netty.channel.ExceptionEvent;
- import org.jboss.netty.channel.MessageEvent;
- import org.jboss.netty.channel.SimpleChannelHandler;
- public class RSChannelHandler extends SimpleChannelHandler {
- private static final ChannelLocal<Player> local = new ChannelLocal<Player>();
- @Override
- public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent event) {
- event.getCause().printStackTrace();
- }
- @Override
- public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent event) throws Exception {
- local.setIfAbsent(ctx.getChannel(), PlayerHandler.newPlayerClient(ctx));
- System.out.println(ctx.getChannel().getLocalAddress() + " has connected.");
- }
- @Override
- public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent event) throws Exception {
- System.out.println(ctx.getChannel().getLocalAddress() + " has disconnected.");
- local.get(ctx.getChannel()).disconnected = true;
- }
- @Override
- public void messageReceived(ChannelHandlerContext ctx, MessageEvent event) throws Exception {
- final Object message = event.getMessage();
- final Player player = (Player) ctx.getAttachment();
- if(message != null && message instanceof RSBuffer) {
- PacketHandler.dispatch(player, (RSBuffer) message);
- }
- }
- public static Player get(Channel channel) {
- return local.get(channel);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement