Search in sources :

Example 46 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class RankUtils method parseTop.

/**
 * Parse top placeholders (PTOP/GTOP-type-x) in text
 *
 * @param targetUser user for which text will be parsed
 * @param text       text to parse
 * @return parsed text
 */
public static String parseTop(PluginConfiguration config, TablistConfiguration tablistConfig, MessageConfiguration messages, UserRankManager userRankManager, GuildRankManager guildRankManager, User targetUser, String text) {
    if (text == null) {
        return null;
    }
    if (!text.contains("TOP-")) {
        return text;
    }
    Matcher matcher = TOP_PATTERN.matcher(text);
    if (matcher.find()) {
        String topType = matcher.group(1);
        String comparatorType = matcher.group(2);
        String indexString = matcher.group(3);
        int index;
        try {
            index = Integer.parseInt(indexString);
        } catch (NumberFormatException ex) {
            FunnyGuilds.getPluginLogger().error(indexString + "is invalid " + topType + " index!");
            return text;
        }
        if (index < 1) {
            FunnyGuilds.getPluginLogger().error("Index in " + topType + " must be greater or equal to 1!");
            return text;
        }
        if (topType.equalsIgnoreCase("PTOP")) {
            Option<UserTop> userTopOption = userRankManager.getTop(comparatorType);
            if (userTopOption.isEmpty()) {
                return StringUtils.replace(text, "{PTOP-" + comparatorType + "-" + index + "}", messages.ptopNoValue);
            }
            UserTop userTop = userTopOption.get();
            Option<User> userOption = userTop.getUser(index);
            if (userOption.isEmpty()) {
                return StringUtils.replace(text, "{PTOP-" + comparatorType + "-" + index + "}", messages.ptopNoValue);
            }
            User user = userOption.get();
            Number topValue = userTop.getComparator().getValue(user.getRank());
            String topFormat = config.top.format.ptop.getValue();
            if (!topFormat.isEmpty()) {
                List<RangeFormatting> valueFormatting = config.top.format.ptopValueFormatting.get(comparatorType.toLowerCase());
                topFormat = topFormat.replace("{VALUE-FORMAT}", valueFormatting == null ? topValue.toString() : NumberRange.inRangeToString(topValue, valueFormatting));
                topFormat = topFormat.replace("{VALUE}", topValue.toString());
            }
            return formatUserRank(config, text, "{PTOP-" + comparatorType + "-" + index + "}", targetUser, user, topFormat);
        } else if (topType.equalsIgnoreCase("GTOP")) {
            Option<GuildTop> guildTopOption = guildRankManager.getTop(comparatorType);
            if (guildTopOption.isEmpty()) {
                return StringUtils.replace(text, "{GTOP-" + comparatorType + "-" + index + "}", messages.gtopNoValue);
            }
            GuildTop guildTop = guildTopOption.get();
            Option<Guild> guildOption = guildTop.getGuild(index);
            if (guildOption.isEmpty()) {
                return StringUtils.replace(text, "{GTOP-" + comparatorType + "-" + index + "}", messages.gtopNoValue);
            }
            Guild guild = guildOption.get();
            Number topValue = guildTop.getComparator().getValue(guild.getRank());
            String topFormat = config.top.format.gtop.getValue();
            List<RangeFormatting> valueFormatting = config.top.format.gtopValueFormatting.get(comparatorType.toLowerCase());
            topFormat = topFormat.replace("{VALUE-FORMAT}", valueFormatting == null ? topValue.toString() : NumberRange.inRangeToString(topValue, valueFormatting));
            topFormat = topFormat.replace("{VALUE}", topValue.toString());
            return formatGuildRank(config, tablistConfig, text, "{GTOP-" + comparatorType + "-" + index + "}", targetUser, guild, topFormat);
        }
    }
    return text;
}
Also used : User(net.dzikoysk.funnyguilds.user.User) Matcher(java.util.regex.Matcher) Guild(net.dzikoysk.funnyguilds.guild.Guild) GuildTop(net.dzikoysk.funnyguilds.guild.top.GuildTop) UserTop(net.dzikoysk.funnyguilds.user.top.UserTop) Option(panda.std.Option) List(java.util.List) RangeFormatting(net.dzikoysk.funnyguilds.config.RangeFormatting)

Example 47 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class HologramUpdateLocationHandler method run.

@Override
public void run() {
    HologramConfiguration hologramConfig = config.heart.hologram;
    if (!hologramConfig.enabled) {
        return;
    }
    HookManager.HOLOGRAPHIC_DISPLAYS.peek(hologramManager -> {
        Bukkit.getScheduler().runTask(plugin, () -> {
            for (Guild guild : guildManager.getGuilds()) {
                hologramManager.getCorrectedLocation(guild).peek(location -> hologramManager.getFunnyHologram(guild).peek(hologram -> hologram.setLocation(location)));
            }
        });
    });
}
Also used : HologramConfiguration(net.dzikoysk.funnyguilds.config.sections.HologramConfiguration) FunnyGuilds(net.dzikoysk.funnyguilds.FunnyGuilds) Guild(net.dzikoysk.funnyguilds.guild.Guild) PluginConfiguration(net.dzikoysk.funnyguilds.config.PluginConfiguration) GuildManager(net.dzikoysk.funnyguilds.guild.GuildManager) HookManager(net.dzikoysk.funnyguilds.feature.hooks.HookManager) HologramConfiguration(net.dzikoysk.funnyguilds.config.sections.HologramConfiguration) Bukkit(org.bukkit.Bukkit) Guild(net.dzikoysk.funnyguilds.guild.Guild)

Example 48 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class WarUtils method message.

public static void message(Player player, int i, Object... values) {
    MessageConfiguration messages = FunnyGuilds.getInstance().getMessageConfiguration();
    String message = null;
    switch(i) {
        case 0:
            message = messages.warHasNotGuild;
            break;
        case 1:
            message = messages.warAlly;
            break;
        case 2:
            message = messages.warWait;
            message = StringUtils.replace(message, "{TIME}", TimeUtils.getDurationBreakdown((long) values[0]));
            break;
        case 3:
            message = messages.warAttacker;
            message = StringUtils.replace(message, "{ATTACKED}", ((Guild) values[0]).getTag());
            break;
        case 4:
            message = messages.warAttacked;
            message = StringUtils.replace(message, "{ATTACKER}", ((Guild) values[0]).getTag());
            break;
        case 5:
            message = messages.warDisabled;
            break;
        default:
            throw new IllegalArgumentException("Unknown magic number " + i);
    }
    ChatUtils.sendMessage(player, message);
}
Also used : MessageConfiguration(net.dzikoysk.funnyguilds.config.MessageConfiguration) Guild(net.dzikoysk.funnyguilds.guild.Guild)

Example 49 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class PvPCommand method execute.

@FunnyCommand(name = "${user.pvp.name}", description = "${user.pvp.description}", aliases = "${user.pvp.aliases}", permission = "funnyguilds.pvp", acceptsExceeded = true, playerOnly = true)
public void execute(Player player, @CanManage User user, Guild guild, String[] args) {
    if (args.length > 0) {
        when(!config.damageAlly, messages.generalAllyPvpDisabled);
        Guild targetAlliedGuild = GuildValidation.requireGuildByTag(args[0]);
        Formatter guildTagFormatter = new Formatter().register("{TAG}", targetAlliedGuild.getTag());
        when(!guild.getAllies().contains(targetAlliedGuild), guildTagFormatter.format(messages.allyDoesntExist));
        guild.setPvP(targetAlliedGuild, !guild.getPvP(targetAlliedGuild));
        user.sendMessage(guildTagFormatter.format(guild.getPvP(targetAlliedGuild) ? messages.pvpAllyOn : messages.pvpAllyOff));
        return;
    }
    guild.setPvP(!guild.getPvP());
    user.sendMessage(guild.getPvP() ? messages.pvpOn : messages.pvpOff);
}
Also used : Formatter(panda.utilities.text.Formatter) Guild(net.dzikoysk.funnyguilds.guild.Guild) AbstractFunnyCommand(net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand) FunnyCommand(net.dzikoysk.funnycommands.stereotypes.FunnyCommand)

Example 50 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class EntityInteract method onInteract.

@EventHandler
public void onInteract(PlayerInteractEntityEvent event) {
    Player eventCaller = event.getPlayer();
    Entity clickedEntity = event.getRightClicked();
    if (clickedEntity instanceof Player) {
        Player clickedPlayer = (Player) clickedEntity;
        if (!config.infoPlayerEnabled || (config.infoPlayerSneaking && !eventCaller.isSneaking()) || informationMessageCooldowns.cooldown(eventCaller, TimeUnit.SECONDS, config.infoPlayerCooldown)) {
            return;
        }
        if (config.infoPlayerCommand) {
            try {
                playerExecutor.execute(eventCaller, new String[] { clickedPlayer.getName() });
            } catch (ValidationException validatorException) {
                validatorException.getValidationMessage().peek(message -> ChatUtils.sendMessage(eventCaller, message));
            }
        } else {
            this.userManager.findByPlayer(clickedPlayer).peek(user -> playerExecutor.sendInfoMessage(messages.playerRightClickInfo, user, eventCaller));
        }
    }
    if (config.regionExplodeBlockInteractions && clickedEntity instanceof InventoryHolder) {
        this.userManager.findByPlayer(eventCaller).filter(user -> user.getGuild().map(Guild::canBuild).isEmpty()).peek(user -> event.setCancelled(true));
    }
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) EventHandler(org.bukkit.event.EventHandler) InventoryHolder(org.bukkit.inventory.InventoryHolder) PlayerInfoCommand(net.dzikoysk.funnyguilds.feature.command.user.PlayerInfoCommand) FunnyGuilds(net.dzikoysk.funnyguilds.FunnyGuilds) Entity(org.bukkit.entity.Entity) Guild(net.dzikoysk.funnyguilds.guild.Guild) Cooldown(net.dzikoysk.funnyguilds.shared.Cooldown) Player(org.bukkit.entity.Player) ValidationException(net.dzikoysk.funnycommands.resources.ValidationException) PlayerInteractEntityEvent(org.bukkit.event.player.PlayerInteractEntityEvent) ChatUtils(net.dzikoysk.funnyguilds.shared.bukkit.ChatUtils) Entity(org.bukkit.entity.Entity) Player(org.bukkit.entity.Player) ValidationException(net.dzikoysk.funnycommands.resources.ValidationException) InventoryHolder(org.bukkit.inventory.InventoryHolder) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Guild (net.dzikoysk.funnyguilds.guild.Guild)58 User (net.dzikoysk.funnyguilds.user.User)34 FunnyCommand (net.dzikoysk.funnycommands.stereotypes.FunnyCommand)23 AbstractFunnyCommand (net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand)23 Formatter (panda.utilities.text.Formatter)16 Region (net.dzikoysk.funnyguilds.guild.Region)12 Player (org.bukkit.entity.Player)11 PluginConfiguration (net.dzikoysk.funnyguilds.config.PluginConfiguration)9 FunnyGuilds (net.dzikoysk.funnyguilds.FunnyGuilds)8 Option (panda.std.Option)8 Location (org.bukkit.Location)7 Material (org.bukkit.Material)6 EventHandler (org.bukkit.event.EventHandler)6 List (java.util.List)5 ValidationException (net.dzikoysk.funnycommands.resources.ValidationException)5 Team (org.bukkit.scoreboard.Team)5 TimeUnit (java.util.concurrent.TimeUnit)4 HookManager (net.dzikoysk.funnyguilds.feature.hooks.HookManager)4 GuildManager (net.dzikoysk.funnyguilds.guild.GuildManager)4 ChatUtils (net.dzikoysk.funnyguilds.shared.bukkit.ChatUtils)4