Search in sources :

Example 41 with User

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

the class EssentialsAntiBuildListener method onHangingBreak.

@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onHangingBreak(final HangingBreakByEntityEvent event) {
    final Entity entity = event.getRemover();
    if (entity instanceof Player) {
        final User user = ess.getUser((Player) entity);
        final EntityType type = event.getEntity().getType();
        final boolean warn = ess.getSettings().warnOnBuildDisallow();
        if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build")) {
            if (type == EntityType.PAINTING && !metaPermCheck(user, "break", Material.PAINTING.getId())) {
                if (warn) {
                    user.sendMessage(tl("antiBuildBreak", Material.PAINTING.toString()));
                }
                event.setCancelled(true);
            } else if (type == EntityType.ITEM_FRAME && !metaPermCheck(user, "break", Material.ITEM_FRAME.getId())) {
                if (warn) {
                    user.sendMessage(tl("antiBuildBreak", Material.ITEM_FRAME.toString()));
                }
                event.setCancelled(true);
            }
        }
    }
}
Also used : EntityType(org.bukkit.entity.EntityType) HumanEntity(org.bukkit.entity.HumanEntity) Entity(org.bukkit.entity.Entity) Player(org.bukkit.entity.Player) User(com.earth2me.essentials.User) EventHandler(org.bukkit.event.EventHandler)

Example 42 with User

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

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 successName = sign.getSuccessName(ess);
        if (successName == null) {
            event.getPlayer().sendMessage(I18n.tl("errorWithMessage", "Please report this error to a staff member."));
            return;
        }
        String lSuccessName = ChatColor.stripColor(successName.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 43 with User

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

the class KeywordReplacer method replaceKeywords.

private void replaceKeywords(final CommandSource sender) {
    execTimer = new ExecuteTimer();
    execTimer.start();
    User user = null;
    if (sender.isPlayer()) {
        user = ess.getUser(sender.getPlayer());
    }
    execTimer.mark("User Grab");
    for (int i = 0; i < input.getLines().size(); i++) {
        String line = input.getLines().get(i);
        final Matcher matcher = KEYWORD.matcher(line);
        while (matcher.find()) {
            final String fullMatch = matcher.group(0);
            final String keywordMatch = matcher.group(1);
            final String[] matchTokens = KEYWORDSPLIT.split(keywordMatch);
            line = replaceLine(line, fullMatch, matchTokens, user);
        }
        replaced.add(line);
    }
    execTimer.mark("Text Replace");
    final String timeroutput = execTimer.end();
    if (ess.getSettings().isDebug()) {
        ess.getLogger().log(Level.INFO, "Keyword Replacer " + timeroutput);
    }
}
Also used : User(com.earth2me.essentials.User) Matcher(java.util.regex.Matcher) ExecuteTimer(com.earth2me.essentials.ExecuteTimer)

Example 44 with User

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

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.replaceSpacesWithUnderscores) {
                replacer = replacer.replaceAll("\\s", "_");
            }
            // 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)

Example 45 with User

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

the class Commandfly method togglePlayer.

@Override
void togglePlayer(CommandSource sender, User user, Boolean enabled) {
    if (enabled == null) {
        enabled = !user.getBase().getAllowFlight();
    }
    final User controller = sender.isPlayer() ? ess.getUser(sender.getPlayer()) : null;
    FlyStatusChangeEvent event = new FlyStatusChangeEvent(user, controller, enabled);
    ess.getServer().getPluginManager().callEvent(event);
    if (!event.isCancelled()) {
        user.getBase().setFallDistance(0f);
        user.getBase().setAllowFlight(enabled);
        if (!user.getBase().getAllowFlight()) {
            user.getBase().setFlying(false);
        }
        user.sendMessage(tl("flyMode", tl(enabled ? "enabled" : "disabled"), user.getDisplayName()));
        if (!sender.isPlayer() || !sender.getPlayer().equals(user.getBase())) {
            sender.sendMessage(tl("flyMode", tl(enabled ? "enabled" : "disabled"), user.getDisplayName()));
        }
    }
}
Also used : User(com.earth2me.essentials.User) FlyStatusChangeEvent(net.ess3.api.events.FlyStatusChangeEvent)

Aggregations

User (com.earth2me.essentials.User)231 Player (org.bukkit.entity.Player)39 Location (org.bukkit.Location)30 EventHandler (org.bukkit.event.EventHandler)29 World (org.bukkit.World)18 Trade (com.earth2me.essentials.Trade)14 ItemStack (org.bukkit.inventory.ItemStack)14 Material (org.bukkit.Material)8 ArrayList (java.util.ArrayList)7 IText (com.earth2me.essentials.textreader.IText)6 List (java.util.List)6 UUID (java.util.UUID)6 IOException (java.io.IOException)5 IUser (com.earth2me.essentials.IUser)4 Kit (com.earth2me.essentials.Kit)4 OfflinePlayer (com.earth2me.essentials.OfflinePlayer)4 PlayerList (com.earth2me.essentials.PlayerList)4 Teleport (com.earth2me.essentials.Teleport)4 UserMap (com.earth2me.essentials.UserMap)4 KeywordReplacer (com.earth2me.essentials.textreader.KeywordReplacer)4