@Override
  public boolean updateSession(final PlayerAuth auth) {
    if (!cache.containsKey(auth.getNickname())) {
      return false;
    }
    PlayerAuth cachedAuth = cache.get(auth.getNickname());
    final String oldIp = cachedAuth.getIp();
    final long oldLastLogin = cachedAuth.getLastLogin();
    final String oldRealName = cachedAuth.getRealName();

    cachedAuth.setIp(auth.getIp());
    cachedAuth.setLastLogin(auth.getLastLogin());
    cachedAuth.setRealName(auth.getRealName());
    exec.execute(
        new Runnable() {
          @Override
          public void run() {
            if (!source.updateSession(auth)) {
              if (cache.containsKey(auth.getNickname())) {
                PlayerAuth cachedAuth = cache.get(auth.getNickname());
                cachedAuth.setIp(oldIp);
                cachedAuth.setLastLogin(oldLastLogin);
                cachedAuth.setRealName(oldRealName);
              }
            }
          }
        });
    return true;
  }
 @Override
 public List<String> autoPurgeDatabase(long until) {
   List<String> cleared = source.autoPurgeDatabase(until);
   if (cleared.size() > 0) {
     for (PlayerAuth auth : cache.values()) {
       if (auth.getLastLogin() < until) {
         cache.remove(auth.getNickname());
       }
     }
   }
   return cleared;
 }
 @Override
 public int purgeDatabase(long until) {
   int cleared = source.purgeDatabase(until);
   if (cleared > 0) {
     for (PlayerAuth auth : cache.values()) {
       if (auth.getLastLogin() < until) {
         cache.remove(auth.getNickname());
       }
     }
   }
   return cleared;
 }
 /**
  * Method set.
  *
  * @param auth PlayerAuth
  */
 public void set(PlayerAuth auth) {
   this.setEmail(auth.getEmail());
   this.setPassword(auth.getPassword());
   this.setIp(auth.getIp());
   this.setLastLogin(auth.getLastLogin());
   this.setNickname(auth.getNickname());
   this.setQuitLocX(auth.getQuitLocX());
   this.setQuitLocY(auth.getQuitLocY());
   this.setQuitLocZ(auth.getQuitLocZ());
   this.setWorld(auth.getWorld());
   this.setRealName(auth.getRealName());
 }
Example #5
0
 @Override
 public synchronized boolean saveAuth(PlayerAuth auth) {
   if (isAuthAvailable(auth.getNickname())) {
     return false;
   }
   BufferedWriter bw = null;
   try {
     bw = new BufferedWriter(new FileWriter(source, true));
     bw.write(
         auth.getNickname()
             + ":"
             + auth.getHash()
             + ":"
             + auth.getIp()
             + ":"
             + auth.getLastLogin()
             + ":"
             + auth.getQuitLocX()
             + ":"
             + auth.getQuitLocY()
             + ":"
             + auth.getQuitLocZ()
             + ":"
             + auth.getWorld()
             + ":"
             + auth.getEmail()
             + "\n");
   } catch (IOException ex) {
     ConsoleLogger.showError(ex.getMessage());
     return false;
   } finally {
     if (bw != null) {
       try {
         bw.close();
       } catch (IOException ex) {
       }
     }
   }
   return true;
 }
Example #6
0
 @Override
 public boolean updateSession(PlayerAuth auth) {
   if (!isAuthAvailable(auth.getNickname())) {
     return false;
   }
   PlayerAuth newAuth = null;
   BufferedReader br = null;
   try {
     br = new BufferedReader(new FileReader(source));
     String line;
     while ((line = br.readLine()) != null) {
       String[] args = line.split(":");
       if (args[0].equalsIgnoreCase(auth.getNickname())) {
         switch (args.length) {
           case 4:
             {
               newAuth =
                   new PlayerAuth(
                       args[0],
                       args[1],
                       auth.getIp(),
                       auth.getLastLogin(),
                       0,
                       0,
                       0,
                       "world",
                       "*****@*****.**",
                       args[0]);
               break;
             }
           case 7:
             {
               newAuth =
                   new PlayerAuth(
                       args[0],
                       args[1],
                       auth.getIp(),
                       auth.getLastLogin(),
                       Double.parseDouble(args[4]),
                       Double.parseDouble(args[5]),
                       Double.parseDouble(args[6]),
                       "world",
                       "*****@*****.**",
                       args[0]);
               break;
             }
           case 8:
             {
               newAuth =
                   new PlayerAuth(
                       args[0],
                       args[1],
                       auth.getIp(),
                       auth.getLastLogin(),
                       Double.parseDouble(args[4]),
                       Double.parseDouble(args[5]),
                       Double.parseDouble(args[6]),
                       args[7],
                       "*****@*****.**",
                       args[0]);
               break;
             }
           case 9:
             {
               newAuth =
                   new PlayerAuth(
                       args[0],
                       args[1],
                       auth.getIp(),
                       auth.getLastLogin(),
                       Double.parseDouble(args[4]),
                       Double.parseDouble(args[5]),
                       Double.parseDouble(args[6]),
                       args[7],
                       args[8],
                       args[0]);
               break;
             }
           default:
             {
               newAuth =
                   new PlayerAuth(
                       args[0],
                       args[1],
                       auth.getIp(),
                       auth.getLastLogin(),
                       0,
                       0,
                       0,
                       "world",
                       "*****@*****.**",
                       args[0]);
               break;
             }
         }
         break;
       }
     }
   } catch (FileNotFoundException ex) {
     ConsoleLogger.showError(ex.getMessage());
     return false;
   } catch (IOException ex) {
     ConsoleLogger.showError(ex.getMessage());
     return false;
   } finally {
     if (br != null) {
       try {
         br.close();
       } catch (IOException ex) {
       }
     }
   }
   if (newAuth != null) {
     removeAuth(auth.getNickname());
     saveAuth(newAuth);
   }
   return true;
 }