Package net.bnubot.db

Examples of net.bnubot.db.Account


  throws Exception {
    try {
      if((params == null) || (params.length != 1))
        throw new InvalidUseException();

      Account rsSubjectAccount = Account.get(params[0]);
      if(rsSubjectAccount == null) {
        BNetUser bnSubject = source.getCreateBNetUser(params[0], user);

        BNLogin rsSubject = BNLogin.get(bnSubject);
        if(rsSubject == null)
          throw new NeverSeenUserException(bnSubject);

        rsSubjectAccount = rsSubject.getAccount();
        if(rsSubjectAccount == null)
          throw new CommandFailedWithDetailsException("User [" + rsSubject.getLogin() + "] has no account");
      }

      List<String> clauses = new LinkedList<String>();

      // Access
      Rank rsSubjectRank = rsSubjectAccount.getRank();
      if(rsSubjectRank != null) {
        String prefix = rsSubjectRank.getShortPrefix();
        String prefix2 = rsSubjectRank.getPrefix();
        if(prefix == null)
          prefix = prefix2;

        if(prefix == null)
          prefix = "";
        else
          prefix += " ";

        String result = prefix + rsSubjectAccount.getName();
        if(rsSubjectRank.getVerbstr() != null)
          result += " " + rsSubjectRank.getVerbstr();
        else {
          switch(prefix.charAt(0)) {
          case 'a': case 'e': case 'i': case 'o': case 'u':
          case 'A': case 'E': case 'I': case 'O': case 'U':
            result += " is an ";
            break;
          default:
            result += " is a ";
            break;
          }
          result += prefix2;
        }
        result += " (" + rsSubjectAccount.getAccess() + ")";

        clauses.add(result);
      } else {
        clauses.add(rsSubjectAccount.getName() + " has access " + rsSubjectAccount.getAccess());
      }

      // Birthday
      Date subjectBirthday = rsSubjectAccount.getBirthday();
      if(subjectBirthday != null) {
        double age = System.currentTimeMillis() - subjectBirthday.getTime();
        age /= 1000 * 60 * 60 * 24 * 365.24;
        age = Math.floor(age * 100) / 100;
        clauses.add("is " + Double.toString(age) + " years old");
      }

      // Last seen
      Date lastSeen = null;
      for(BNLogin rsSubject : rsSubjectAccount.getBnLogins()) {
        if(lastSeen == null)
          lastSeen = rsSubject.getLastSeen();
        else {
          Date nt = rsSubject.getLastSeen();
          if((nt != null) && (nt.compareTo(lastSeen) > 0))
            lastSeen = nt;
        }
      }

      if(lastSeen != null) {
        clauses.add("was last seen " + TimeFormatter.formatTime(System.currentTimeMillis() - lastSeen.getTime()) + " ago");
      }

      // Recruiter
      Account rsCreatorAccount = rsSubjectAccount.getRecruiter();
      if(rsCreatorAccount != null) {
        clauses.add("was recruited by " + rsCreatorAccount.getName());
      }

      String aliases = null;
      for(BNLogin alias : rsSubjectAccount.getBnLogins()) {
        if(aliases == null)
View Full Code Here


    BNetUser bnSubject = source.getCreateBNetUser(params[0], user);
    BNLogin rsSubject = BNLogin.get(bnSubject);
    if(rsSubject == null)
      throw new NeverSeenUserException(bnSubject);

    Account newAccount = null;
    if(params.length == 2) {
      newAccount = Account.get(params[1]);
      if(newAccount == null)
        throw new AccountDoesNotExistException(params[1]);
    }

    rsSubject.setAccount(newAccount);
    rsSubject.updateRow();

    // Set params[1] to what the account looks like in the database
    if(newAccount == null)
      params = new String[] { params[0], "NULL" };
    else
      params[1] = newAccount.getName();

    bnSubject.resetPrettyName();
    user.sendChat("User [" + rsSubject.getLogin() + "] was added to account [" + params[1] + "] successfully.", whisperBack);
  }
View Full Code Here

    if((params == null) || (params.length != 1)) {
      user.sendChat("Use: %trigger%seen <account>", whisperBack);
      return;
    }

    Account rsSubjectAccount = Account.get(params[0]);
    BNLogin rsSubject = null;
    if(rsSubjectAccount == null) {
      //They don't have an account by that name, check if it's a user
      BNetUser bnSubject = source.getCreateBNetUser(params[0], user);
      rsSubject = BNLogin.get(bnSubject);
      if(rsSubject == null)
        throw new NeverSeenUserException(bnSubject);
    } else {
      for(BNLogin login : rsSubjectAccount.getBnLogins()) {
        Date nt = login.getLastSeen();
        if((rsSubject == null)
        || ((nt != null) && (nt.compareTo(rsSubject.getLastSeen()) > 0)))
          rsSubject = login;
      }
View Full Code Here

    if((params == null) || (params.length != 2)) {
      user.sendChat("Use: %trigger%renameaccount <old account> <new account>", whisperBack);
      return;
    }

    Account rsSubjectAccount = Account.get(params[0]);
    Account targetAccount = Account.get(params[1]);

    if((targetAccount != null) && !targetAccount.equals(rsSubjectAccount))
      throw new CommandFailedWithDetailsException("The Account [" + targetAccount.getName() + "] already exists!");

    if(rsSubjectAccount == null)
      throw new AccountDoesNotExistException(params[0]);

    params[0] = rsSubjectAccount.getName();
View Full Code Here

      if(params == null)
        throw new InvalidUseException();
      if(params.length != 1)
        throw new InvalidUseException();

      Account subjectAccount = CommandEventHandler.findOrCreateAccount(source, user, commanderAccount, params[0], 0);

      int targetAccess = subjectAccount.getAccess() + 1;
      CommandEventHandler.setAccountAccess(user, commanderAccount, subjectAccount, targetAccess, superUser, whisperBack);
    } catch(InvalidUseException e) {
      user.sendChat("Use: %trigger%promote <account>", whisperBack);
    }
  }
View Full Code Here

    try {
      if((params != null) && (params.length != 1))
        throw new InvalidUseException();


      Account subjectAccount = null;
      String output = null;
      if(params == null) {
        subjectAccount = commanderAccount;
        output = "You have recruited: ";
      } else {
        subjectAccount = Account.get(params[0]);
        if(subjectAccount == null)
          throw new AccountDoesNotExistException(params[0]);
        output = subjectAccount.getName();
        output += " has recruited: ";
      }

      if(subjectAccount.getRecruits().size() == 0)
        output += "no one";
      for(Account recruit : subjectAccount.getRecruits()) {
        // Remove accounts below the threshold
        if(recruit.getAccess() >= GlobalSettings.recruitAccess)
          output += recruit.getName() + "(" + recruit.getAccess() + ") ";
      }
View Full Code Here

  throws Exception {
    try {
      if((params != null) && (params.length != 1))
        throw new InvalidUseException();

      Account subject;
      if(params == null)
        subject = Account.get(user);
      else
        subject = Account.get(params[0]);

      if(subject == null)
        throw new AccountDoesNotExistException(params[0]);

      long wins[] = subject.getWinsLevels(GlobalSettings.recruitTagPrefix, GlobalSettings.recruitTagSuffix);
      long recruitScore = subject.getRecruitScore(GlobalSettings.recruitAccess);
      Date ts = subject.getLastRankChange();
      String timeElapsed;
      if(ts != null) {
        double te = System.currentTimeMillis() - ts.getTime();
        te /= 1000 * 60 * 60 * 24;
        //Round to 2 decimal places
        timeElapsed = ("00" + ((long)Math.floor(te * 100) % 100));
        timeElapsed = timeElapsed.substring(timeElapsed.length()-2);
        timeElapsed = (long)Math.floor(te) + "." + timeElapsed;
      } else {
        timeElapsed = "?";
      }

      Rank rsRank = subject.getRank();
      if(rsRank == null) {
        String result = "Rank does not exist! ";
        result += subject.getName() + "'s current status is: ";
        result += timeElapsed + " days, ";
        result += wins[0] + " wins, ";
        result += wins[1] + " D2 level, ";
        result += wins[2] + " W3 level";

        throw new CommandFailedWithDetailsException(result);
      }

      Integer apDays = rsRank.getApDays();
      Integer apWins = rsRank.getApWins();
      Integer apD2Level = rsRank.getApD2Level();
      Integer apW3Level = rsRank.getApW3Level();
      Integer apRecruitScore = rsRank.getApRecruitScore();

      // Check if any fields are null
      boolean condition = false;
      condition |= (apDays == null);
      condition |= (apWins == null);
      condition |= (apD2Level == null);
      condition |= (apW3Level == null);
      if(condition == false)
        // No nulls; check if all zeroes
        condition = (apDays == 0) && (apWins == 0) && (apD2Level == 0) && (apW3Level == 0);
      if(condition) {
        String result = "AutoPromotions are not enabled for rank " + subject.getAccess() + ". ";
        result += subject.getName() + "'s current status is: ";
        result += "Days: " + timeElapsed;
        result += ", Wins: " + wins[0];
        result += ", D2 Level: " + wins[1];
        result += ", W3 level: " + wins[2];
        if(recruitScore > 0)
          result += ", Recruit Score: " + recruitScore;

        user.sendChat(result, whisperBack);
      } else {
        String result = "AutoPromotion Info for [" + subject.getName() + "]: ";
        result += "Days: " + timeElapsed + "/" + apDays;
        result += ", Wins: " + wins[0] + "/" + apWins;
        result += ", D2 Level: " + wins[1] + "/" + apD2Level;
        result += ", W3 level: " + wins[2] + "/" + apW3Level;
        if(((apRecruitScore != null) && (apRecruitScore > 0)) || (recruitScore > 0)) {
View Full Code Here

      long age = login.getLastSeen().getTime();
      age = System.currentTimeMillis() - age;
      age /= 86400000l; // convert to days

      long maxAge = defaultMaxAge;
      Account account = login.getAccount();
      if(account != null) {
        Rank rank = account.getRank();
        if(rank != null)
          maxAge = rank.getExpireDays();
      }

      if(maxAge == 0)
        continue;
      if(age <= maxAge)
        continue;

      if(account != null)
        try {
          Mail.send(null, account, "Your login [ " + login.getLogin() + " ] has been removed due to inactivity (" + age + " days)");
        } catch (Exception e) {
          Out.exception(e);
          break;
        }

      if(debugEnabled)
        Out.debugAlways(DatabaseContext.class, "Removing " + login.getLogin() + " due to inactivity (" + age + " days)");
      context.deleteObject(login);
      Thread.yield();
    }

    try {
      context.commitChanges();
    } catch(Exception e) {
      context.rollbackChanges();
      Out.exception(e);
    }

    for(Account account : (List<Account>)context.performQuery(new SelectQuery(Account.class))) {
      // Only consider users with no BnLogins
      if(account.getBnLogins().size() != 0)
        continue;

      // Only consider users with positive access; banlisted users shouldn't expire
      // This also prevents the recruiter from being flooded with mail
      if(account.getRank().getAccess() <= 0)
        continue;

      Account recruiter = account.getRecruiter();
      if(recruiter != null)
        try {
          // Notify the recruiter that the user is inactive
          Mail.send(null, recruiter, "Your recruit [ " + account.getName() + " ] has been removed due to inactivity");
        } catch (Exception e) {
View Full Code Here

TOP

Related Classes of net.bnubot.db.Account

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.