Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. package org.hannes.net.netty;
  2.  
  3. import org.hannes.PlayerHandler;
  4. import org.hannes.entity.Player;
  5. import org.hannes.net.RSBuffer;
  6. import org.hannes.net.packet.PacketHandler;
  7. import org.jboss.netty.channel.Channel;
  8. import org.jboss.netty.channel.ChannelHandlerContext;
  9. import org.jboss.netty.channel.ChannelLocal;
  10. import org.jboss.netty.channel.ChannelStateEvent;
  11. import org.jboss.netty.channel.ExceptionEvent;
  12. import org.jboss.netty.channel.MessageEvent;
  13. import org.jboss.netty.channel.SimpleChannelHandler;
  14.  
  15. public class RSChannelHandler extends SimpleChannelHandler {
  16.  
  17. private static final ChannelLocal<Player> local = new ChannelLocal<Player>();
  18.  
  19. @Override
  20. public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent event) {
  21. event.getCause().printStackTrace();
  22. }
  23.  
  24. @Override
  25. public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent event) throws Exception {
  26. local.setIfAbsent(ctx.getChannel(), PlayerHandler.newPlayerClient(ctx));
  27. System.out.println(ctx.getChannel().getLocalAddress() + " has connected.");
  28. }
  29.  
  30. @Override
  31. public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent event) throws Exception {
  32. System.out.println(ctx.getChannel().getLocalAddress() + " has disconnected.");
  33. local.get(ctx.getChannel()).disconnected = true;
  34. }
  35.  
  36. @Override
  37. public void messageReceived(ChannelHandlerContext ctx, MessageEvent event) throws Exception {
  38. final Object message = event.getMessage();
  39. final Player player = (Player) ctx.getAttachment();
  40. if(message != null && message instanceof RSBuffer) {
  41. PacketHandler.dispatch(player, (RSBuffer) message);
  42. }
  43. }
  44.  
  45. public static Player get(Channel channel) {
  46. return local.get(channel);
  47. }
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement