Пример #1
0
 public boolean isEnemy(String a, String b) {
   try {
     Resident residentA = getDataSource().getResident(a);
     Resident residentB = getDataSource().getResident(b);
     if (residentA.getTown() == residentB.getTown()) return false;
     if (residentA.getTown().getNation() == residentB.getTown().getNation()) return false;
     if (residentA.getTown().getNation().hasEnemy(residentB.getTown().getNation())) return true;
   } catch (NotRegisteredException e) {
     return false;
   }
   return false;
 }
Пример #2
0
 public boolean canAttackEnemy(String a, String b) {
   try {
     Resident residentA = getDataSource().getResident(a);
     Resident residentB = getDataSource().getResident(b);
     if (residentA.getTown() == residentB.getTown()) return false;
     if (residentA.getTown().getNation() == residentB.getTown().getNation()) return false;
     Nation nationA = residentA.getTown().getNation();
     Nation nationB = residentB.getTown().getNation();
     if (nationA.isNeutral() || nationB.isNeutral()) return false;
     if (nationA.hasEnemy(nationB)) return true;
   } catch (NotRegisteredException e) {
     return false;
   }
   return false;
 }
Пример #3
0
 public Location getTownSpawnLocation(Player player) throws TownyException {
   try {
     Resident resident = getDataSource().getResident(player.getName());
     Town town = resident.getTown();
     return town.getSpawn();
   } catch (TownyException x) {
     throw new TownyException("Unable to get spawn location");
   }
 }
Пример #4
0
  public void onLogin(Player player) throws AlreadyRegisteredException, NotRegisteredException {

    if (!player.isOnline()) return;

    // Test and kick any players with invalid names.
    if ((player.getName().trim() == null) || (player.getName().contains(" "))) {
      player.kickPlayer("Invalid name!");
      return;
    }

    Resident resident;

    if (!getDataSource().hasResident(player.getName())) {
      getDataSource().newResident(player.getName());
      resident = getDataSource().getResident(player.getName());

      TownyMessaging.sendMessage(player, TownySettings.getRegistrationMsg(player.getName()));
      resident.setRegistered(System.currentTimeMillis());
      if (!TownySettings.getDefaultTownName().equals(""))
        try {
          Town town = getDataSource().getTown(TownySettings.getDefaultTownName());
          town.addResident(resident);
          getDataSource().saveTown(town);
        } catch (NotRegisteredException e) {
        } catch (AlreadyRegisteredException e) {
        }

      getDataSource().saveResident(resident);
      getDataSource().saveResidentList();

    } else {
      resident = getDataSource().getResident(player.getName());
      resident.setLastOnline(System.currentTimeMillis());

      getDataSource().saveResident(resident);
    }

    try {
      TownyMessaging.sendTownBoard(player, resident.getTown());
    } catch (NotRegisteredException e) {
    }

    if (isWarTime()) getWarEvent().sendScores(player, 3);

    // Schedule to setup default modes when the player has finished loading
    if (getPlugin()
            .getServer()
            .getScheduler()
            .scheduleSyncDelayedTask(getPlugin(), new SetDefaultModes(this, player, false), 1)
        == -1)
      TownyMessaging.sendErrorMsg("Could not set default modes for " + player.getName() + ".");

    setChangedNotify(PLAYER_LOGIN);
  }