Search in sources :

Example 66 with User

use of com.earth2me.essentials.User in project Essentials by drtshock.

the class Commandtpahere method run.

@Override
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception {
    if (args.length < 1) {
        throw new NotEnoughArgumentsException();
    }
    final User player = getPlayer(server, user, args, 0);
    if (user.getName().equalsIgnoreCase(player.getName())) {
        throw new NotEnoughArgumentsException();
    }
    if (!player.isTeleportEnabled()) {
        throw new Exception(tl("teleportDisabled", player.getDisplayName()));
    }
    if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions() && !user.isAuthorized("essentials.worlds." + user.getWorld().getName())) {
        throw new Exception(tl("noPerm", "essentials.worlds." + user.getWorld().getName()));
    }
    // Don't let sender request teleport twice to the same player.
    if (// Check timeout
    user.getConfigUUID().equals(player.getTeleportRequest()) && player.hasOutstandingTeleportRequest() && player.isTpRequestHere() == true) {
        // Make sure the last teleport request was actually tpahere and not tpa
        throw new Exception(tl("requestSentAlready", player.getDisplayName()));
    }
    if (!player.isIgnoredPlayer(user)) {
        player.requestTeleport(user, true);
        player.sendMessage(tl("teleportHereRequest", user.getDisplayName()));
        player.sendMessage(tl("typeTpaccept"));
        player.sendMessage(tl("typeTpdeny"));
        if (ess.getSettings().getTpaAcceptCancellation() != 0) {
            player.sendMessage(tl("teleportRequestTimeoutInfo", ess.getSettings().getTpaAcceptCancellation()));
        }
    }
    user.sendMessage(tl("requestSent", player.getDisplayName()));
    user.sendMessage(tl("typeTpacancel"));
}
Also used : User(com.earth2me.essentials.User)

Example 67 with User

use of com.earth2me.essentials.User in project Essentials by drtshock.

the class Commandtpall method run.

@Override
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception {
    if (args.length < 1) {
        if (sender.isPlayer()) {
            teleportAllPlayers(server, sender, ess.getUser(sender.getPlayer()));
            return;
        }
        throw new NotEnoughArgumentsException();
    }
    final User target = getPlayer(server, sender, args, 0);
    teleportAllPlayers(server, sender, target);
}
Also used : User(com.earth2me.essentials.User)

Example 68 with User

use of com.earth2me.essentials.User in project Towny by ElgarL.

the class ResidentCommand method residentSpawn.

/**
	 * Attempt to send player to bed spawn.
	 * 
	 * @param player
	 */
public void residentSpawn(Player player) {
    boolean isTownyAdmin = TownyUniverse.getPermissionSource().isTownyAdmin(player);
    Resident resident;
    try {
        resident = TownyUniverse.getDataSource().getResident(player.getName());
        Town town;
        Location spawnLoc;
        String notAffordMSG;
        TownSpawnLevel townSpawnPermission;
        // Set target town and affiliated messages.
        town = resident.getTown();
        notAffordMSG = TownySettings.getLangString("msg_err_cant_afford_tp");
        if (TownySettings.getBedUse() && player.getBedSpawnLocation() != null) {
            spawnLoc = player.getBedSpawnLocation();
        } else {
            spawnLoc = town.getSpawn();
        }
        if (isTownyAdmin) {
            townSpawnPermission = TownSpawnLevel.ADMIN;
        } else {
            townSpawnPermission = TownSpawnLevel.TOWN_RESIDENT;
        }
        if (!isTownyAdmin) {
            // Prevent spawn travel while in disallowed zones (if
            // configured)
            List<String> disallowedZones = TownySettings.getDisallowedTownSpawnZones();
            if (!disallowedZones.isEmpty()) {
                String inTown = null;
                try {
                    Location loc = plugin.getCache(player).getLastLocation();
                    inTown = TownyUniverse.getTownName(loc);
                } catch (NullPointerException e) {
                    inTown = TownyUniverse.getTownName(player.getLocation());
                }
                if (inTown == null && disallowedZones.contains("unclaimed"))
                    throw new TownyException(String.format(TownySettings.getLangString("msg_err_town_spawn_disallowed_from"), "the Wilderness"));
                if (inTown != null && resident.hasNation() && TownyUniverse.getDataSource().getTown(inTown).hasNation()) {
                    Nation inNation = TownyUniverse.getDataSource().getTown(inTown).getNation();
                    Nation playerNation = resident.getTown().getNation();
                    if (inNation.hasEnemy(playerNation) && disallowedZones.contains("enemy"))
                        throw new TownyException(String.format(TownySettings.getLangString("msg_err_town_spawn_disallowed_from"), "Enemy areas"));
                    if (!inNation.hasAlly(playerNation) && !inNation.hasEnemy(playerNation) && disallowedZones.contains("neutral"))
                        throw new TownyException(String.format(TownySettings.getLangString("msg_err_town_spawn_disallowed_from"), "Neutral towns"));
                }
            }
        }
        double travelCost = townSpawnPermission.getCost();
        // Check if need/can pay
        if (travelCost > 0 && TownySettings.isUsingEconomy() && (resident.getHoldingBalance() < travelCost))
            throw new TownyException(notAffordMSG);
        // Used later to make sure the chunk we teleport to is loaded.
        Chunk chunk = spawnLoc.getChunk();
        // Essentials tests
        boolean UsingESS = plugin.isEssentials();
        if (UsingESS && !isTownyAdmin) {
            try {
                User user = plugin.getEssentials().getUser(player);
                if (!user.isJailed()) {
                    Teleport teleport = user.getTeleport();
                    if (!chunk.isLoaded())
                        chunk.load();
                    // Cause an essentials exception if in cooldown.
                    teleport.cooldown(true);
                    teleport.teleport(spawnLoc, null);
                }
            } catch (Exception e) {
                TownyMessaging.sendErrorMsg(player, "Error: " + e.getMessage());
                // cooldown?
                return;
            }
        }
        // travel.
        if (travelCost > 0 && TownySettings.isUsingEconomy() && resident.payTo(travelCost, town, String.format("Resident Spawn (%s)", townSpawnPermission))) {
            // +
            TownyMessaging.sendMsg(player, String.format(TownySettings.getLangString("msg_cost_spawn"), TownyEconomyHandler.getFormattedBalance(travelCost)));
        // TownyEconomyObject.getEconomyCurrency()));
        }
        // If an Admin or Essentials teleport isn't being used, use our own.
        if (isTownyAdmin) {
            if (player.getVehicle() != null)
                player.getVehicle().eject();
            if (!chunk.isLoaded())
                chunk.load();
            player.teleport(spawnLoc, TeleportCause.COMMAND);
            return;
        }
        if (!UsingESS) {
            if (TownyTimerHandler.isTeleportWarmupRunning()) {
                // Use teleport warmup
                player.sendMessage(String.format(TownySettings.getLangString("msg_town_spawn_warmup"), TownySettings.getTeleportWarmupTime()));
                plugin.getTownyUniverse().requestTeleport(player, spawnLoc, travelCost);
            } else {
                // Don't use teleport warmup
                if (player.getVehicle() != null)
                    player.getVehicle().eject();
                if (!chunk.isLoaded())
                    chunk.load();
                player.teleport(spawnLoc, TeleportCause.COMMAND);
            }
        }
    } catch (TownyException e) {
        TownyMessaging.sendErrorMsg(player, e.getMessage());
    } catch (EconomyException e) {
        TownyMessaging.sendErrorMsg(player, e.getMessage());
    }
}
Also used : Nation(com.palmergames.bukkit.towny.object.Nation) TownSpawnLevel(com.palmergames.bukkit.towny.object.TownSpawnLevel) User(com.earth2me.essentials.User) Chunk(org.bukkit.Chunk) Teleport(com.earth2me.essentials.Teleport) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) EconomyException(com.palmergames.bukkit.towny.exceptions.EconomyException) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException) EconomyException(com.palmergames.bukkit.towny.exceptions.EconomyException) Town(com.palmergames.bukkit.towny.object.Town) Resident(com.palmergames.bukkit.towny.object.Resident) Location(org.bukkit.Location)

Example 69 with User

use of com.earth2me.essentials.User in project Essentials by drtshock.

the class SignBlockListener method onSignSignChange2.

@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onSignSignChange2(final SignChangeEvent event) {
    if (ess.getSettings().areSignsDisabled()) {
        event.getHandlers().unregister(this);
        return;
    }
    User user = ess.getUser(event.getPlayer());
    for (int i = 0; i < 4; i++) {
        event.setLine(i, FormatUtil.formatString(user, "essentials.signs", event.getLine(i)));
    }
    final String lColorlessTopLine = ChatColor.stripColor(event.getLine(0)).toLowerCase().trim();
    if (lColorlessTopLine.isEmpty()) {
        return;
    }
    //We loop through all sign types here to prevent clashes with preexisting signs later
    for (Signs signs : Signs.values()) {
        final EssentialsSign sign = signs.getSign();
        // If the top sign line contains any of the success name (excluding colors), just remove all colours from the first line.
        // This is to ensure we are only modifying possible Essentials Sign and not just removing colors from the first line of all signs.
        // Top line and sign#getSuccessName() are both lowercased since contains is case-sensitive.
        String lSuccessName = ChatColor.stripColor(sign.getSuccessName().toLowerCase());
        if (lColorlessTopLine.contains(lSuccessName)) {
            // By lower-casing it and stripping colours. 
            if (!ess.getSettings().enabledSigns().contains(sign) && ess.getSettings().getUnprotectedSignNames().contains(sign)) {
                continue;
            }
            event.setLine(0, lColorlessTopLine);
        }
    }
}
Also used : User(com.earth2me.essentials.User) EventHandler(org.bukkit.event.EventHandler)

Example 70 with User

use of com.earth2me.essentials.User in project Essentials by drtshock.

the class KeywordReplacer method replaceLine.

private String replaceLine(String line, final String fullMatch, final String[] matchTokens, final User user) {
    final String keyword = matchTokens[0];
    try {
        String replacer = null;
        KeywordType validKeyword = KeywordType.valueOf(keyword);
        if (validKeyword.getType().equals(KeywordCachable.CACHEABLE) && keywordCache.containsKey(validKeyword)) {
            replacer = keywordCache.get(validKeyword).toString();
        } else if (validKeyword.getType().equals(KeywordCachable.SUBVALUE)) {
            String subKeyword = "";
            if (matchTokens.length > 1) {
                subKeyword = matchTokens[1].toLowerCase(Locale.ENGLISH);
            }
            if (keywordCache.containsKey(validKeyword)) {
                Map<String, String> values = (Map<String, String>) keywordCache.get(validKeyword);
                if (values.containsKey(subKeyword)) {
                    replacer = values.get(subKeyword);
                }
            }
        }
        if (validKeyword.isPrivate() && !includePrivate) {
            replacer = "";
        }
        if (replacer == null) {
            replacer = "";
            switch(validKeyword) {
                case PLAYER:
                case DISPLAYNAME:
                    if (user != null) {
                        replacer = user.getDisplayName();
                    }
                    break;
                case USERNAME:
                    if (user != null) {
                        replacer = user.getName();
                    }
                    break;
                case BALANCE:
                    if (user != null) {
                        replacer = NumberUtil.displayCurrency(user.getMoney(), ess);
                    }
                    break;
                case MAILS:
                    if (user != null) {
                        replacer = Integer.toString(user.getMails().size());
                    }
                    break;
                case WORLD:
                case WORLDNAME:
                    if (user != null) {
                        final Location location = user.getLocation();
                        replacer = location == null || location.getWorld() == null ? "" : location.getWorld().getName();
                    }
                    break;
                case ONLINE:
                    int playerHidden = 0;
                    for (User u : ess.getOnlineUsers()) {
                        if (u.isHidden()) {
                            playerHidden++;
                        }
                    }
                    replacer = Integer.toString(ess.getOnlinePlayers().size() - playerHidden);
                    break;
                case UNIQUE:
                    replacer = NumberFormat.getInstance().format(ess.getUserMap().getUniqueUsers());
                    break;
                case WORLDS:
                    final StringBuilder worldsBuilder = new StringBuilder();
                    for (World w : ess.getServer().getWorlds()) {
                        if (worldsBuilder.length() > 0) {
                            worldsBuilder.append(", ");
                        }
                        worldsBuilder.append(w.getName());
                    }
                    replacer = worldsBuilder.toString();
                    break;
                case PLAYERLIST:
                    final Map<String, String> outputList;
                    if (keywordCache.containsKey(validKeyword)) {
                        outputList = (Map<String, String>) keywordCache.get(validKeyword);
                    } else {
                        final boolean showHidden;
                        if (user == null) {
                            showHidden = true;
                        } else {
                            showHidden = user.isAuthorized("essentials.list.hidden") || user.canInteractVanished();
                        }
                        //First lets build the per group playerlist
                        final Map<String, List<User>> playerList = PlayerList.getPlayerLists(ess, user, showHidden);
                        outputList = new HashMap<String, String>();
                        for (String groupName : playerList.keySet()) {
                            final List<User> groupUsers = playerList.get(groupName);
                            if (groupUsers != null && !groupUsers.isEmpty()) {
                                outputList.put(groupName, PlayerList.listUsers(ess, groupUsers, " "));
                            }
                        }
                        //Now lets build the all user playerlist
                        final StringBuilder playerlistBuilder = new StringBuilder();
                        for (Player p : ess.getOnlinePlayers()) {
                            if (ess.getUser(p).isHidden()) {
                                continue;
                            }
                            if (playerlistBuilder.length() > 0) {
                                playerlistBuilder.append(", ");
                            }
                            playerlistBuilder.append(p.getDisplayName());
                        }
                        outputList.put("", playerlistBuilder.toString());
                        keywordCache.put(validKeyword, outputList);
                    }
                    //Now thats all done, output the one we want and cache the rest.
                    if (matchTokens.length == 1) {
                        replacer = outputList.get("");
                    } else if (outputList.containsKey(matchTokens[1].toLowerCase(Locale.ENGLISH))) {
                        replacer = outputList.get(matchTokens[1].toLowerCase(Locale.ENGLISH));
                    } else if (matchTokens.length > 2) {
                        replacer = matchTokens[2];
                    }
                    keywordCache.put(validKeyword, outputList);
                    break;
                case TIME:
                    replacer = DateFormat.getTimeInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(new Date());
                    break;
                case DATE:
                    replacer = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(new Date());
                    break;
                case WORLDTIME12:
                    if (user != null) {
                        replacer = DescParseTickFormat.format12(user.getWorld() == null ? 0 : user.getWorld().getTime());
                    }
                    break;
                case WORLDTIME24:
                    if (user != null) {
                        replacer = DescParseTickFormat.format24(user.getWorld() == null ? 0 : user.getWorld().getTime());
                    }
                    break;
                case WORLDDATE:
                    if (user != null) {
                        replacer = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(DescParseTickFormat.ticksToDate(user.getWorld() == null ? 0 : user.getWorld().getFullTime()));
                    }
                    break;
                case COORDS:
                    if (user != null) {
                        final Location location = user.getLocation();
                        replacer = tl("coordsKeyword", location.getBlockX(), location.getBlockY(), location.getBlockZ());
                    }
                    break;
                case TPS:
                    replacer = NumberUtil.formatDouble(ess.getTimer().getAverageTPS());
                    break;
                case UPTIME:
                    replacer = DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime());
                    break;
                case IP:
                    if (user != null) {
                        replacer = user.getBase().getAddress() == null || user.getBase().getAddress().getAddress() == null ? "" : user.getBase().getAddress().getAddress().toString();
                    }
                    break;
                case ADDRESS:
                    if (user != null) {
                        replacer = user.getBase().getAddress() == null ? "" : user.getBase().getAddress().toString();
                    }
                    break;
                case PLUGINS:
                    final StringBuilder pluginlistBuilder = new StringBuilder();
                    for (Plugin p : ess.getServer().getPluginManager().getPlugins()) {
                        if (pluginlistBuilder.length() > 0) {
                            pluginlistBuilder.append(", ");
                        }
                        pluginlistBuilder.append(p.getDescription().getName());
                    }
                    replacer = pluginlistBuilder.toString();
                    break;
                case VERSION:
                    replacer = ess.getServer().getVersion();
                    break;
                default:
                    replacer = "N/A";
                    break;
            }
            //If this is just a regular keyword, lets throw it into the cache
            if (validKeyword.getType().equals(KeywordCachable.CACHEABLE)) {
                keywordCache.put(validKeyword, replacer);
            }
        }
        line = line.replace(fullMatch, replacer);
    } catch (IllegalArgumentException ex) {
    }
    return line;
}
Also used : Player(org.bukkit.entity.Player) User(com.earth2me.essentials.User) World(org.bukkit.World) PlayerList(com.earth2me.essentials.PlayerList) Location(org.bukkit.Location) Plugin(org.bukkit.plugin.Plugin)

Aggregations

User (com.earth2me.essentials.User)113 Player (org.bukkit.entity.Player)18 Location (org.bukkit.Location)16 EventHandler (org.bukkit.event.EventHandler)14 World (org.bukkit.World)9 Trade (com.earth2me.essentials.Trade)7 ItemStack (org.bukkit.inventory.ItemStack)6 UUID (java.util.UUID)4 Teleport (com.earth2me.essentials.Teleport)3 IText (com.earth2me.essentials.textreader.IText)3 List (java.util.List)3 Material (org.bukkit.Material)3 IUser (com.earth2me.essentials.IUser)2 Kit (com.earth2me.essentials.Kit)2 OfflinePlayer (com.earth2me.essentials.OfflinePlayer)2 PlayerList (com.earth2me.essentials.PlayerList)2 UserMap (com.earth2me.essentials.UserMap)2 IMessageRecipient (com.earth2me.essentials.messaging.IMessageRecipient)2 KeywordReplacer (com.earth2me.essentials.textreader.KeywordReplacer)2 SimpleTextInput (com.earth2me.essentials.textreader.SimpleTextInput)2