daily pastebin goal
55%
SHARE
TWEET

Untitled

a guest May 19th, 2017 48 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Top