Advertisement
Guest User

Untitled

a guest
May 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 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. {
  15.  
  16. private WorldRegisteredPacketBuilder builder = new WorldRegisteredPacketBuilder();
  17.  
  18. public void handlePacket(Packet p, IoSession session) throws Exception
  19. {
  20. final long uID = ((LSPacket)p).getUID();
  21. builder.setUID(uID);
  22. builder.setSuccess(false);
  23.  
  24. Server server = Server.getServer();
  25. if(((LSPacket)p).getID() == 1)
  26. {
  27.  
  28. int id = p.readShort();
  29. String passrecv = p.readString().trim();
  30.  
  31. if(server.getWorld(id) == null && passrecv!= null)
  32. {
  33. World world = server.getIdleWorld(id);
  34. if(!passrecv.equals(Config.LS_PASSWORD))
  35. {
  36. System.out.println("Failed to authenticate world "+id);
  37. return;
  38. }
  39. if(world == null)
  40. {
  41. world = new World(id, session);
  42. server.registerWorld(world);
  43. System.out.println("Registering world: " + id);
  44. }
  45. else
  46. {
  47. world.setSession(session);
  48. server.setIdle(world, false);
  49. System.out.println("Reattached to world " + id);
  50. }
  51. int playerCount = p.readShort();
  52. for(int i = 0;i < playerCount;i++)
  53. {
  54. world.registerPlayer(p.readLong(), DataConversions.IPToString(p.readLong()));
  55. }
  56. session.setAttachment(world);
  57. builder.setSuccess(true);
  58. }
  59. }
  60. else
  61. {
  62.  
  63. World world = (World)session.getAttachment();
  64. server.unregisterWorld(world);
  65. System.out.println("UnRegistering world: " + world.getID());
  66. session.setAttachment(null);
  67. builder.setSuccess(true);
  68.  
  69. }
  70.  
  71. LSPacket temp = builder.getPacket();
  72. if(temp != null)
  73. {
  74. session.write(temp);
  75. }
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement