Advertisement
Guest User

Untitled

a guest
May 19th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. package org.rscdaemon.ls.packethandler.loginserver;
  2.  
  3. import org.rscdaemon.ls.packethandler.PacketHandler;
  4. import org.rscdaemon.ls.Server;
  5. import org.rscdaemon.ls.packetbuilder.loginserver.WorldRegisteredPacketBuilder;
  6. import org.rscdaemon.ls.model.World;
  7. import org.rscdaemon.ls.net.LSPacket;
  8. import org.rscdaemon.ls.net.Packet;
  9. import org.rscdaemon.ls.util.DataConversions;
  10.  
  11. import org.apache.mina.common.IoSession;
  12.  
  13. public class RegisterWorld implements PacketHandler {
  14. private WorldRegisteredPacketBuilder builder = new WorldRegisteredPacketBuilder();
  15.  
  16. public void handlePacket(Packet p, IoSession session) throws Exception {
  17. final long uID = ((LSPacket)p).getUID();
  18. builder.setUID(uID);
  19. builder.setSuccess(false);
  20.  
  21. Server server = Server.getServer();
  22. if(((LSPacket)p).getID() == 1) {
  23. int id = p.readShort();
  24. String passrecv = p.readString().trim();
  25. if(server.getWorld(id) == null&&passrecv!=null) {
  26. World world = server.getIdleWorld(id);
  27. if(!passrecv.equals(Config.LS_PASSWORD)){
  28. System.out.println("Failed to authenticate world "+id);
  29. return;
  30. }
  31. if(world == null) {
  32. world = new World(id, session);
  33. server.registerWorld(world);
  34. System.out.println("Registering world: " + id);
  35. }
  36. else {
  37. world.setSession(session);
  38. server.setIdle(world, false);
  39. System.out.println("Reattached to world " + id);
  40. }
  41. int playerCount = p.readShort();
  42. for(int i = 0;i < playerCount;i++) {
  43. world.registerPlayer(p.readLong(), DataConversions.IPToString(p.readLong()));
  44. }
  45. session.setAttachment(world);
  46. builder.setSuccess(true);
  47. }
  48. }
  49. else {
  50. World world = (World)session.getAttachment();
  51.  
  52. server.unregisterWorld(world);
  53. System.out.println("UnRegistering world: " + world.getID());
  54. session.setAttachment(null);
  55. builder.setSuccess(true);
  56. }
  57.  
  58. LSPacket temp = builder.getPacket();
  59. if(temp != null) {
  60. session.write(temp);
  61. }
  62. }
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement