Search in sources :

Example 6 with TownyUniverse

use of com.palmergames.bukkit.towny.TownyUniverse in project Towny by TownyAdvanced.

the class TownType method getRecipients.

@Override
public Collection<Player> getRecipients(Collection<Player> recipients, Player player) {
    TownyUniverse townyUniverse = TownyUniverse.getInstance();
    Resident resident = townyUniverse.getResident(player.getUniqueId());
    if (resident == null)
        return recipients;
    try {
        final UUID town = resident.getTown().getUUID();
        Collection<Player> newRecipients = new HashSet<>();
        for (Player p : recipients) {
            Resident playerResident = townyUniverse.getResident(p.getUniqueId());
            if (playerResident != null && playerResident.hasTown() && playerResident.getTown().getUUID().equals(town)) {
                newRecipients.add(p);
            }
        }
        return newRecipients;
    } catch (NotRegisteredException e) {
        e.printStackTrace();
    }
    return recipients;
}
Also used : Player(org.bukkit.entity.Player) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) Resident(com.palmergames.bukkit.towny.object.Resident) TownyUniverse(com.palmergames.bukkit.towny.TownyUniverse) UUID(java.util.UUID) HashSet(java.util.HashSet)

Example 7 with TownyUniverse

use of com.palmergames.bukkit.towny.TownyUniverse in project Towny by TownyAdvanced.

the class InviteCommand method parseDeny.

public static void parseDeny(Player player, String[] args) {
    TownyUniverse townyUniverse = TownyUniverse.getInstance();
    Optional<Resident> resOpt = townyUniverse.getResidentOpt(player.getUniqueId());
    if (!resOpt.isPresent()) {
        TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered"));
        return;
    }
    Resident resident = resOpt.get();
    List<Invite> invites = resident.getReceivedInvites();
    if (invites.size() == 0) {
        TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_player_no_invites"));
        return;
    }
    Town town;
    if (args.length >= 1) {
        // We cut the first argument out of it so /invite *accept* args[1]
        // SO now args[0] is always the Town, we should check if the argument length is >= 1
        town = townyUniverse.getTown(args[0]);
        if (town == null) {
            TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name"));
            return;
        }
    } else {
        if (invites.size() == 1) {
            // Only 1 Invite.
            town = (Town) invites.get(0).getSender();
        } else {
            TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_player_has_multiple_invites"));
            parseInviteList(player, null);
            return;
        }
    }
    Invite toDecline = null;
    for (Invite invite : InviteHandler.getActiveInvites()) {
        if (invite.getSender().equals(town) && invite.getReceiver().equals(resident)) {
            toDecline = invite;
            break;
        }
    }
    if (toDecline != null) {
        try {
            InviteHandler.declineInvite(toDecline, false);
        } catch (InvalidObjectException e) {
            e.printStackTrace();
        }
    } else
        TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name"));
}
Also used : Town(com.palmergames.bukkit.towny.object.Town) Resident(com.palmergames.bukkit.towny.object.Resident) InvalidObjectException(java.io.InvalidObjectException) TownyUniverse(com.palmergames.bukkit.towny.TownyUniverse) Invite(com.palmergames.bukkit.towny.invites.Invite)

Example 8 with TownyUniverse

use of com.palmergames.bukkit.towny.TownyUniverse in project Towny by TownyAdvanced.

the class ResidentCommand method residentSet.

/**
 * Command: /resident set [] ... []
 *
 * @param player - Player.
 * @param split  - Current command arguments.
 * @throws TownyException - Exception.
 */
/*
	 * perm [resident/outsider] [build/destroy] [on/off]
	 */
public void residentSet(Player player, String[] split) throws TownyException {
    TownyUniverse townyUniverse = TownyUniverse.getInstance();
    if (split.length == 0) {
        TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set", "perm ...", "'/resident set perm' " + Translatable.of("res_5").forLocale(player)));
        TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set", "mode ...", "'/resident set mode' " + Translatable.of("res_5").forLocale(player)));
    } else {
        Optional<Resident> resOpt = townyUniverse.getResidentOpt(player.getUniqueId());
        if (!resOpt.isPresent()) {
            TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", player.getName()));
            return;
        }
        Resident resident = resOpt.get();
        if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_SET.getNode(split[0].toLowerCase())))
            throw new TownyException(Translatable.of("msg_err_command_disable"));
        if (split[0].equalsIgnoreCase("perm")) {
            String[] newSplit = StringMgmt.remFirstArg(split);
            TownCommand.setTownBlockPermissions(player, resident, resident.getPermissions(), newSplit, true);
        } else if (split[0].equalsIgnoreCase("mode")) {
            String[] newSplit = StringMgmt.remFirstArg(split);
            setMode(player, newSplit);
        } else if (TownyCommandAddonAPI.hasCommand(CommandType.RESIDENT_SET, split[0])) {
            TownyCommandAddonAPI.getAddonCommand(CommandType.RESIDENT_SET, split[0]).execute(player, "resident", split);
        } else {
            TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "resident"));
            return;
        }
        resident.save();
    }
}
Also used : Resident(com.palmergames.bukkit.towny.object.Resident) TownyUniverse(com.palmergames.bukkit.towny.TownyUniverse) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 9 with TownyUniverse

use of com.palmergames.bukkit.towny.TownyUniverse in project Towny by TownyAdvanced.

the class TownyCommand method getUniverseStats.

public List<String> getUniverseStats(Locale locale) {
    TownyUniverse townyUniverse = TownyUniverse.getInstance();
    List<String> output = new ArrayList<>();
    final Translator translator = Translator.locale(locale);
    // Intentionally left blank
    output.add("");
    output.add("\u00A70-\u00A74###\u00A70---\u00A74###\u00A70-   " + Colors.Gold + "[" + Colors.Yellow + "Towny " + Colors.Green + plugin.getVersion() + Colors.Gold + "]");
    output.add("\u00A74#\u00A7c###\u00A74#\u00A70-\u00A74#\u00A7c###\u00A74#\u00A70   " + Colors.Blue + translator.of("msg_universe_attribution") + Colors.LightBlue + "Chris H (Shade), ElgarL, LlmDl");
    output.add("\u00A74#\u00A7c####\u00A74#\u00A7c####\u00A74#   " + Colors.LightBlue + translator.of("msg_universe_contributors") + Colors.Rose + translator.of("msg_universe_heart"));
    output.add("\u00A70-\u00A74#\u00A7c#######\u00A74#\u00A70-");
    output.add("\u00A70--\u00A74##\u00A7c###\u00A74##\u00A70--   " + Colors.Blue + translator.of("res_list") + ": " + Colors.LightBlue + townyUniverse.getNumResidents() + Colors.Gray + " | " + Colors.Blue + translator.of("town_plu") + ": " + Colors.LightBlue + townyUniverse.getTowns().size() + Colors.Gray + " | " + Colors.Blue + translator.of("nation_plu") + ": " + Colors.LightBlue + townyUniverse.getNumNations());
    output.add("\u00A70----\u00A74#\u00A7c#\u00A74#\u00A70----   " + Colors.Blue + translator.of("world_plu") + ": " + Colors.LightBlue + townyUniverse.getTownyWorlds().size() + Colors.Gray + " | " + Colors.Blue + translator.of("townblock_plu") + ": " + Colors.LightBlue + townyUniverse.getTownBlocks().size());
    output.add("\u00A70-----\u00A74#\u00A70-----   " + Colors.LightGreen + "https://TownyAdvanced.github.io/");
    // Intentionally left blank
    output.add("");
    // Other TownyAdvanced plugins to report versions
    int plugins = 0;
    String townyPlugins = Colors.Gold + "[";
    // LlmDl Sponsor exclusive
    Plugin tCamps = Bukkit.getServer().getPluginManager().getPlugin("TownyCamps");
    if (tCamps != null) {
        townyPlugins += Colors.Yellow + "TownyCamps " + Colors.Green + tCamps.getDescription().getVersion() + " ";
        plugins++;
    }
    Plugin townyChat = Bukkit.getServer().getPluginManager().getPlugin("TownyChat");
    if (townyChat != null) {
        townyPlugins += Colors.Yellow + "TownyChat " + Colors.Green + townyChat.getDescription().getVersion() + " ";
        plugins++;
    }
    Plugin tCult = Bukkit.getServer().getPluginManager().getPlugin("TownyCultures");
    if (tCult != null) {
        townyPlugins += Colors.Yellow + "TownyCultures " + Colors.Green + tCult.getDescription().getVersion() + " ";
        plugins++;
    }
    Plugin tFlight = Bukkit.getServer().getPluginManager().getPlugin("TownyFlight");
    if (tFlight != null) {
        townyPlugins += Colors.Yellow + "TownyFlight " + Colors.Green + tFlight.getDescription().getVersion() + " ";
        plugins++;
    }
    // LlmDl Sponsor exclusive
    Plugin tHist = Bukkit.getServer().getPluginManager().getPlugin("TownyHistories");
    if (tHist != null) {
        townyPlugins += Colors.Yellow + "TownyHistories " + Colors.Green + tHist.getDescription().getVersion() + " ";
        plugins++;
    }
    Plugin flagWar = Bukkit.getServer().getPluginManager().getPlugin("FlagWar");
    if (flagWar != null) {
        townyPlugins += Colors.Yellow + "FlagWar " + Colors.Green + flagWar.getDescription().getVersion() + " ";
        plugins++;
    }
    Plugin siegeWar = Bukkit.getServer().getPluginManager().getPlugin("SiegeWar");
    if (siegeWar != null) {
        townyPlugins += Colors.Yellow + "SiegeWar " + Colors.Green + siegeWar.getDescription().getVersion() + " ";
        plugins++;
    }
    if (plugins > 0)
        output.add(townyPlugins + Colors.Gold + "]");
    return output;
}
Also used : Translator(com.palmergames.bukkit.towny.object.Translator) ArrayList(java.util.ArrayList) TownyUniverse(com.palmergames.bukkit.towny.TownyUniverse) Plugin(org.bukkit.plugin.Plugin)

Example 10 with TownyUniverse

use of com.palmergames.bukkit.towny.TownyUniverse in project Towny by TownyAdvanced.

the class TownyEntityMonitorListener method onPlayerDeath.

/**
 * This handles PlayerDeathEvents on MONITOR in order to handle Towny features such as:
 * - DeathPayments,
 * - Jailing Players,
 * @param event The event.
 */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerDeath(PlayerDeathEvent event) {
    TownyUniverse townyUniverse = TownyUniverse.getInstance();
    if (!TownyAPI.getInstance().isTownyWorld(event.getEntity().getWorld()))
        return;
    Player defenderPlayer = event.getEntity();
    Resident defenderResident = TownyUniverse.getInstance().getResident(defenderPlayer.getUniqueId());
    if (defenderResident == null) {
        // Usually an NPC or a Bot of some kind.
        return;
    }
    // Killed by another entity?
    if (defenderPlayer.getLastDamageCause() instanceof EntityDamageByEntityEvent) {
        EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) defenderPlayer.getLastDamageCause();
        Entity attackerEntity = damageEvent.getDamager();
        Player attackerPlayer = null;
        Resident attackerResident = null;
        if (attackerEntity instanceof Projectile) {
            // Killed by projectile, try to narrow the true source of the kill.
            Projectile projectile = (Projectile) attackerEntity;
            if (projectile.getShooter() instanceof Player) {
                // Player shot a projectile.
                attackerPlayer = (Player) projectile.getShooter();
                attackerResident = townyUniverse.getResident(attackerPlayer.getUniqueId());
            } else {
                // Something else shot a projectile.
                try {
                    // Mob shot a projectile.
                    attackerEntity = (Entity) projectile.getShooter();
                } catch (Exception e) {
                // This would be a dispenser kill, should count as environmental death.
                }
            }
        } else if (attackerEntity instanceof Player) {
            // This was a player kill
            attackerPlayer = (Player) attackerEntity;
            attackerResident = townyUniverse.getResident(attackerPlayer.getUniqueId());
            if (attackerResident == null)
                // Probably an NPC.
                return;
        }
        // This was a suicide, don't award money or jail.
        if (attackerPlayer != null && attackerPlayer == defenderPlayer)
            return;
        /*
			 * Player has died by a player: 
			 * 
			 * - Fire PlayerKilledPlayerEvent.
			 * 
			 * - charge death payment,
			 * - check for jailing attacking residents,
			 */
        if (attackerPlayer != null && attackerResident != null) {
            PlayerKilledPlayerEvent deathEvent = new PlayerKilledPlayerEvent(attackerPlayer, defenderPlayer, attackerResident, defenderResident, defenderPlayer.getLocation(), event);
            BukkitTools.getPluginManager().callEvent(deathEvent);
            deathPayment(attackerPlayer, defenderPlayer, attackerResident, defenderResident);
            isJailingAttackers(attackerPlayer, defenderPlayer, attackerResident, defenderResident);
        /*
			 * Player has died from an entity but not a player & death price is not PVP only.
			 */
        } else if (!TownySettings.isDeathPricePVPOnly() && TownySettings.isChargingDeath()) {
            deathPayment(defenderPlayer, defenderResident);
        }
    /*
		 * Player has died from non-entity cause, ie: Environmental.
		 */
    } else {
        if (!TownySettings.isDeathPricePVPOnly() && TownySettings.isChargingDeath()) {
            deathPayment(defenderPlayer, defenderResident);
        }
    }
}
Also used : Entity(org.bukkit.entity.Entity) Player(org.bukkit.entity.Player) EntityDamageByEntityEvent(org.bukkit.event.entity.EntityDamageByEntityEvent) PlayerKilledPlayerEvent(com.palmergames.bukkit.towny.event.player.PlayerKilledPlayerEvent) Resident(com.palmergames.bukkit.towny.object.Resident) TownyUniverse(com.palmergames.bukkit.towny.TownyUniverse) Projectile(org.bukkit.entity.Projectile) EventHandler(org.bukkit.event.EventHandler)

Aggregations

TownyUniverse (com.palmergames.bukkit.towny.TownyUniverse)27 Resident (com.palmergames.bukkit.towny.object.Resident)19 ArrayList (java.util.ArrayList)8 Player (org.bukkit.entity.Player)8 TownyException (com.palmergames.bukkit.towny.exceptions.TownyException)7 Town (com.palmergames.bukkit.towny.object.Town)6 NotRegisteredException (com.palmergames.bukkit.towny.exceptions.NotRegisteredException)4 EventHandler (org.bukkit.event.EventHandler)4 Nation (com.palmergames.bukkit.towny.object.Nation)3 TownyWorld (com.palmergames.bukkit.towny.object.TownyWorld)3 HashSet (java.util.HashSet)3 Invite (com.palmergames.bukkit.towny.invites.Invite)2 TownBlock (com.palmergames.bukkit.towny.object.TownBlock)2 Translator (com.palmergames.bukkit.towny.object.Translator)2 WorldCoord (com.palmergames.bukkit.towny.object.WorldCoord)2 InvalidObjectException (java.io.InvalidObjectException)2 List (java.util.List)2 UUID (java.util.UUID)2 SiegeSide (com.gmail.goosius.siegewar.enums.SiegeSide)1 Siege (com.gmail.goosius.siegewar.objects.Siege)1