use of com.palmergames.bukkit.towny.TownyUniverse in project SiegeWar by TownyAdvanced.
the class SiegeWarBannerControlUtil method evaluateNewBannerControlSessions.
private static void evaluateNewBannerControlSessions(Siege siege) {
try {
TownyUniverse universe = TownyUniverse.getInstance();
Resident resident;
for (Player player : Bukkit.getOnlinePlayers()) {
resident = universe.getResident(player.getUniqueId());
if (resident == null)
throw new TownyException(Translation.of("msg_err_not_registered_1", player.getName()));
if (!doesPlayerMeetBasicSessionRequirements(siege, player, resident))
continue;
if (!player.isOp() && player.hasPermission(SiegeWarPermissionNodes.SIEGEWAR_SIEGEZONE_CANNOT_GET_BANNER_CONTROL.getNode()))
continue;
if (!BattleSession.getBattleSession().isActive()) {
Translatable message = Translatable.of("msg_war_siege_battle_session_break_cannot_get_banner_control", SiegeWarBattleSessionUtil.getFormattedTimeUntilNextBattleSessionStarts());
Messaging.sendErrorMsg(player, message);
continue;
}
if (siege.getBannerControlSessions().containsKey(player))
// Player already has a control session
continue;
if (siege.getBannerControllingResidents().contains(resident))
// Player already on the BC list
continue;
if (SiegeWarBattleSessionUtil.isBattleSessionCappingLimiterActiveForResident(resident)) {
Translatable message = Translatable.of("msg_war_siege_max_daily_player_battle_sessions_reached_cannot_get_banner_control", SiegeWarSettings.getBattleSessionCappingLimiter(), SiegeWarBattleSessionUtil.getFormattedTimeUntilPlayerBattleSessionLimitExpires(resident));
Messaging.sendErrorMsg(player, message);
// Player is being limited by the battle session capping limiter
continue;
}
SiegeSide siegeSide = SiegeWarAllegianceUtil.calculateCandidateSiegePlayerSide(player, resident.getTown(), siege);
switch(siegeSide) {
case ATTACKERS:
addNewBannerControlSession(siege, player, resident, SiegeSide.ATTACKERS);
break;
case DEFENDERS:
addNewBannerControlSession(siege, player, resident, SiegeSide.DEFENDERS);
break;
case NOBODY:
continue;
}
}
} catch (Exception e) {
SiegeWar.severe("Problem evaluating new banner control sessions");
e.printStackTrace();
}
}
use of com.palmergames.bukkit.towny.TownyUniverse in project Towny by TownyAdvanced.
the class TownyLoginListener method onPlayerLogin.
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerLogin(PlayerLoginEvent event) {
String npcPrefix = TownySettings.getNPCPrefix();
String warChest = "towny-war-chest";
String serverAccount = TownySettings.getString(ConfigNodes.ECO_CLOSED_ECONOMY_SERVER_ACCOUNT);
boolean disallowed = false;
Player player = event.getPlayer();
TownyUniverse townyUniverse = TownyUniverse.getInstance();
if (player.getName().startsWith(npcPrefix)) {
Resident npcRes = townyUniverse.getResident(player.getName());
if (npcRes != null && npcRes.isMayor()) {
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Towny is preventing you from logging in using this account name.");
disallowed = true;
}
} else if (player.getName().equals(warChest) || player.getName().equals(warChest.replace("-", "_"))) {
// Deny because this is the warChest account.
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Towny is preventing you from logging in using this account name.");
disallowed = true;
} else if (player.getName().equals(serverAccount) || player.getName().equals(serverAccount.replace("-", "_"))) {
// Deny because this is the closed economy server account.
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Towny is preventing you from logging in using this account name.");
disallowed = true;
} else if (player.getName().startsWith(TownySettings.getTownAccountPrefix()) || player.getName().startsWith(TownySettings.getTownAccountPrefix().replace("-", "_")) || player.getName().startsWith(TownySettings.getNationAccountPrefix()) || player.getName().startsWith(TownySettings.getNationAccountPrefix().replace("-", "_"))) {
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Towny is preventing you from logging in using this account name.");
disallowed = true;
}
if (disallowed) {
String ip = event.getAddress().toString().substring(1);
Towny.getPlugin().getLogger().warning("A player using the IP address " + ip + " tried to log in using an account name (" + event.getPlayer().getName() + ") which could damage your server's economy, but was prevented by Towny. Consider banning this IP address!");
for (Player ops : Bukkit.getOnlinePlayers()) {
if (ops.isOp() || ops.hasPermission("towny.admin"))
TownyMessaging.sendMsg(ops, Translatable.of("msg_admin_blocked_login", ip, event.getPlayer().getName()));
}
}
}
Aggregations