Search in sources :

Example 16 with MessagesConfig

use of net.dzikoysk.funnyguilds.data.configs.MessagesConfig in project FunnyGuilds by FunnyGuilds.

the class AxcUnban method execute.

@Override
public void execute(CommandSender sender, String[] args) {
    MessagesConfig messages = Messages.getInstance();
    if (args.length < 1) {
        sender.sendMessage(messages.generalNoTagGiven);
        return;
    }
    Guild guild = GuildUtils.getByTag(args[0]);
    if (guild == null) {
        sender.sendMessage(messages.generalNoGuildFound);
        return;
    }
    if (!guild.isBanned()) {
        sender.sendMessage(messages.adminGuildNotBanned);
        return;
    }
    User admin = (sender instanceof Player) ? User.get(sender.getName()) : null;
    if (!SimpleEventHandler.handle(new GuildUnbanEvent(admin == null ? EventCause.CONSOLE : EventCause.ADMIN, admin, guild))) {
        return;
    }
    BanUtils.unban(guild);
    MessageTranslator translator = new MessageTranslator().register("{GUILD}", guild.getName()).register("{TAG}", guild.getName()).register("{ADMIN}", sender.getName());
    sender.sendMessage(translator.translate(messages.adminGuildUnban));
    Bukkit.broadcastMessage(translator.translate(messages.broadcastUnban));
}
Also used : Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) GuildUnbanEvent(net.dzikoysk.funnyguilds.event.guild.GuildUnbanEvent) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) Guild(net.dzikoysk.funnyguilds.basic.Guild) MessageTranslator(net.dzikoysk.funnyguilds.data.util.MessageTranslator)

Example 17 with MessagesConfig

use of net.dzikoysk.funnyguilds.data.configs.MessagesConfig in project FunnyGuilds by FunnyGuilds.

the class AxcValidity method execute.

@Override
public void execute(CommandSender sender, String[] args) {
    MessagesConfig messages = Messages.getInstance();
    PluginConfig config = Settings.getConfig();
    if (args.length < 1) {
        sender.sendMessage(messages.generalNoTagGiven);
        return;
    } else if (args.length < 2) {
        sender.sendMessage(messages.adminNoValidityTimeGiven);
        return;
    }
    Guild guild = GuildUtils.getByTag(args[0]);
    if (guild == null) {
        sender.sendMessage(messages.generalNoGuildFound);
        return;
    }
    if (guild.isBanned()) {
        sender.sendMessage(messages.adminGuildBanned);
        return;
    }
    long time = Parser.parseTime(args[1]);
    if (time < 1) {
        sender.sendMessage(messages.adminTimeError);
        return;
    }
    User admin = (sender instanceof Player) ? User.get(sender.getName()) : null;
    if (!SimpleEventHandler.handle(new GuildExtendValidityEvent(admin == null ? EventCause.CONSOLE : EventCause.ADMIN, admin, guild, time))) {
        return;
    }
    long validity = guild.getValidity();
    if (validity == 0) {
        validity = System.currentTimeMillis();
    }
    validity += time;
    guild.setValidity(validity);
    String date = config.dateFormat.format(new Date(validity));
    sender.sendMessage(messages.adminNewValidity.replace("{GUILD}", guild.getName()).replace("{VALIDITY}", date));
}
Also used : PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) Guild(net.dzikoysk.funnyguilds.basic.Guild) GuildExtendValidityEvent(net.dzikoysk.funnyguilds.event.guild.GuildExtendValidityEvent) Date(java.util.Date)

Example 18 with MessagesConfig

use of net.dzikoysk.funnyguilds.data.configs.MessagesConfig in project FunnyGuilds by FunnyGuilds.

the class BungeeTabListPlusHook method initVariableHook.

public static void initVariableHook() {
    FunnyGuilds plugin = FunnyGuilds.getInstance();
    PluginConfig config = Settings.getConfig();
    MessagesConfig messages = Messages.getInstance();
    // Guilds number
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_guilds") {

        @Override
        public String getReplacement(Player player) {
            return String.valueOf(GuildUtils.getGuilds().size());
        }
    });
    // Users number
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_users") {

        @Override
        public String getReplacement(Player player) {
            return String.valueOf(UserUtils.getUsers().size());
        }
    });
    // User deaths
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_deaths") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            return String.valueOf(u.getRank().getDeaths());
        }
    });
    // User KDR
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_kdr") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            return String.format(Locale.US, "%.2f", u.getRank().getKDR());
        }
    });
    // User kills
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_kills") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            return String.valueOf(u.getRank().getKills());
        }
    });
    // User points (formatted)
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_points-format") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            return IntegerRange.inRange(u.getRank().getPoints(), config.pointsFormat).replace("{POINTS}", String.valueOf(u.getRank().getPoints()));
        }
    });
    // User points
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_points") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            return String.valueOf(u.getRank().getPoints());
        }
    });
    // User position
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_position") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            return String.valueOf(u.getRank().getPosition());
        }
    });
    // Guild allies number
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-allies") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getAllies().size());
        }
    });
    // Guild deaths
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-deaths") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getRank().getDeaths());
        }
    });
    // Guild deputies number
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-deputies") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gDeputiesNoValue : (g.getDeputies().isEmpty() ? messages.gDeputiesNoValue : StringUtils.toString(UserUtils.getNames(g.getDeputies()), false));
        }
    });
    // Guild deputy (random name)
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-deputy") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gDeputyNoValue : (g.getDeputies().isEmpty() ? messages.gDeputyNoValue : g.getDeputies().get(RandomUtils.RANDOM_INSTANCE.nextInt(g.getDeputies().size())).getName());
        }
    });
    // Guild KDR
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-kdr") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0.00" : String.format(Locale.US, "%.2f", g.getRank().getKDR());
        }
    });
    // Guild kills
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-kills") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getRank().getKills());
        }
    });
    // Guild lives
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-lives") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getLives());
        }
    });
    // Guild members number
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-members-all") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getMembers().size());
        }
    });
    // Guild online members number
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-members-online") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getOnlineMembers().size());
        }
    });
    // Guild name
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-name") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gNameNoValue : g.getName();
        }
    });
    // Guild owner name
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-owner") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gOwnerNoValue : g.getOwner().getName();
        }
    });
    // Guild points (formatted)
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-points-format") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? IntegerRange.inRange(0, config.pointsFormat).replace("{POINTS}", "0") : IntegerRange.inRange(g.getRank().getPoints(), config.pointsFormat).replace("{POINTS}", String.valueOf(g.getRank().getPoints()));
        }
    });
    // Guild points
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-points") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getRank().getPoints());
        }
    });
    // Guild position
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-position") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? "0" : String.valueOf(g.getRank().getPosition());
        }
    });
    // Guild region size
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-region-size") {

        @Override
        public String getReplacement(Player player) {
            if (!config.regionsEnabled) {
                return messages.gRegionSizeNoValue;
            }
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gRegionSizeNoValue : String.valueOf(g.getRegionData().getSize());
        }
    });
    // Guild tag
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-tag") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gTagNoValue : g.getTag();
        }
    });
    // Guild validity
    BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_g-validity") {

        @Override
        public String getReplacement(Player player) {
            User u = User.get(player);
            if (u == null) {
                return "";
            }
            Guild g = u.getGuild();
            return g == null ? messages.gValidityNoValue : config.dateFormat.format(g.getValidityDate());
        }
    });
    // Guild TOP, positions 1-100
    for (int i = 1; i <= 100; i++) {
        final int index = i;
        BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_gtop-" + index) {

            @Override
            public String getReplacement(Player player) {
                return Parser.parseRank("{GTOP-" + index + "}");
            }
        });
    }
    // User TOP, positions 1-100
    for (int i = 1; i <= 100; i++) {
        final int index = i;
        BungeeTabListPlusBukkitAPI.registerVariable(plugin, new Variable("funnyguilds_ptop-" + index) {

            @Override
            public String getReplacement(Player player) {
                return Parser.parseRank("{PTOP-" + index + "}");
            }
        });
    }
    FunnyLogger.info("BungeeTabListPlus hook has been enabled!");
}
Also used : PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) Player(org.bukkit.entity.Player) Variable(codecrafter47.bungeetablistplus.api.bukkit.Variable) User(net.dzikoysk.funnyguilds.basic.User) FunnyGuilds(net.dzikoysk.funnyguilds.FunnyGuilds) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) Guild(net.dzikoysk.funnyguilds.basic.Guild)

Example 19 with MessagesConfig

use of net.dzikoysk.funnyguilds.data.configs.MessagesConfig in project FunnyGuilds by FunnyGuilds.

the class PlayerDeath method onDeath.

@EventHandler
public void onDeath(PlayerDeathEvent event) {
    Player v = event.getEntity();
    Player a = event.getEntity().getKiller();
    User victim = User.get(v);
    victim.getRank().addDeath();
    if (a == null) {
        return;
    }
    User attacker = User.get(a);
    if (victim.equals(attacker)) {
        return;
    }
    if (PluginHook.isPresent(PluginHook.PLUGIN_WORLDGUARD)) {
        if (WorldGuardHook.isOnNonPointsRegion(v.getLocation()) || WorldGuardHook.isOnNonPointsRegion(a.getLocation())) {
            return;
        }
    }
    PluginConfig config = Settings.getConfig();
    MessagesConfig messages = Messages.getInstance();
    if (config.rankFarmingProtect) {
        if (attacker.getLastVictim() != null && attacker.getLastVictim().equals(victim)) {
            if (attacker.getLastVictimTime() + (config.rankFarmingCooldown * 1000) >= System.currentTimeMillis()) {
                v.sendMessage(messages.rankLastVictimV);
                a.sendMessage(messages.rankLastVictimA);
                event.setDeathMessage(null);
                return;
            }
        } else if (victim.getLastAttacker() != null && victim.getLastAttacker().equals(attacker)) {
            if (victim.getLastVictimTime() + (config.rankFarmingCooldown * 1000) >= System.currentTimeMillis()) {
                v.sendMessage(messages.rankLastAttackerV);
                a.sendMessage(messages.rankLastAttackerA);
                event.setDeathMessage(null);
                return;
            }
        }
    }
    if (config.rankIPProtect) {
        if (a.getAddress().getHostString().equalsIgnoreCase(v.getAddress().getHostString())) {
            v.sendMessage(messages.rankIPVictim);
            a.sendMessage(messages.rankIPAttacker);
            event.setDeathMessage(null);
            return;
        }
    }
    int[] rankChanges = new int[2];
    int aP = attacker.getRank().getPoints();
    int vP = victim.getRank().getPoints();
    switch(config.rankSystem) {
        case ELO:
            rankChanges = getEloValues(vP, aP);
            break;
        case PERCENT:
            Double d = victim.getRank().getPoints() * (config.percentRankChange / 100);
            rankChanges[0] = d.intValue();
            rankChanges[1] = d.intValue();
            break;
        case STATIC:
            rankChanges[0] = config.staticAttackerChange;
            rankChanges[1] = config.staticVictimChange;
            break;
        default:
            rankChanges = getEloValues(vP, aP);
            break;
    }
    RankChangeEvent attackerEvent = new PointsChangeEvent(EventCause.USER, attacker.getRank(), attacker, rankChanges[0]);
    RankChangeEvent victimEvent = new PointsChangeEvent(EventCause.USER, victim.getRank(), attacker, rankChanges[1]);
    List<String> assistEntries = new ArrayList<>();
    if (SimpleEventHandler.handle(attackerEvent) && SimpleEventHandler.handle(victimEvent)) {
        double attackerDamage = victim.killedBy(attacker);
        if (config.assistEnable && victim.isAssisted()) {
            double toShare = attackerEvent.getChange() * (1 - config.assistKillerShare);
            double totalDamage = victim.getTotalDamage() + attackerDamage;
            int givenPoints = 0;
            Map<User, Double> damage = MapUtil.sortByValue(victim.getDamage());
            int assists = 0;
            for (Entry<User, Double> assist : damage.entrySet()) {
                double assistFraction = assist.getValue() / totalDamage;
                int addedPoints = (int) Math.round(assistFraction * toShare);
                if (addedPoints <= 0) {
                    continue;
                }
                if (config.assistsLimit > 0) {
                    if (assists >= config.assistsLimit) {
                        continue;
                    }
                    assists++;
                }
                givenPoints += addedPoints;
                String assistEntry = StringUtils.replace(messages.rankAssistEntry, "{PLAYER}", assist.getKey().getName());
                assistEntry = StringUtils.replace(assistEntry, "{+}", Integer.toString(addedPoints));
                assistEntry = StringUtils.replace(assistEntry, "{SHARE}", StringUtils.getPercent(assistFraction));
                assistEntries.add(assistEntry);
                assist.getKey().getRank().addPoints(addedPoints);
            }
            double attackerPoints = attackerEvent.getChange() - toShare + (givenPoints < toShare ? toShare - givenPoints : 0);
            attackerEvent.setChange((int) Math.round(attackerPoints));
        }
        attacker.getRank().addKill();
        attacker.getRank().addPoints(attackerEvent.getChange());
        attacker.setLastVictim(victim);
        victim.getRank().removePoints(victimEvent.getChange());
        victim.setLastAttacker(attacker);
        victim.clearDamage();
    }
    ConcurrencyManager concurrencyManager = FunnyGuilds.getInstance().getConcurrencyManager();
    ConcurrencyTaskBuilder taskBuilder = ConcurrencyTask.builder();
    if (config.dataType.mysql) {
        if (victim.hasGuild()) {
            // IndependentThread.actions(ActionType.MYSQL_UPDATE_GUILD_POINTS, victim.getGuild());
            taskBuilder.delegate(new DatabaseUpdateGuildPointsRequest(victim.getGuild()));
        }
        if (attacker.hasGuild()) {
            // IndependentThread.actions(ActionType.MYSQL_UPDATE_GUILD_POINTS, attacker.getGuild());
            taskBuilder.delegate(new DatabaseUpdateGuildPointsRequest(attacker.getGuild()));
        }
        // IndependentThread.actions(ActionType.MYSQL_UPDATE_USER_POINTS, victim);
        // IndependentThread.actions(ActionType.MYSQL_UPDATE_USER_POINTS, attacker);
        taskBuilder.delegate(new DatabaseUpdateUserPointsRequest(victim));
        taskBuilder.delegate(new DatabaseUpdateUserPointsRequest(attacker));
    }
    /*
        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, victim);
        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, attacker);
        IndependentThread.actions(ActionType.RANK_UPDATE_USER, victim);
        IndependentThread.action(ActionType.RANK_UPDATE_USER, attacker);
        */
    ConcurrencyTask task = taskBuilder.delegate(new DummyGlobalUpdateUserRequest(victim)).delegate(new DummyGlobalUpdateUserRequest(attacker)).delegate(new RankUpdateUserRequest(victim)).delegate(new RankUpdateUserRequest(attacker)).build();
    concurrencyManager.postTask(task);
    String deathMessage = messages.rankDeathMessage;
    deathMessage = StringUtils.replace(deathMessage, "{ATTACKER}", attacker.getName());
    deathMessage = StringUtils.replace(deathMessage, "{VICTIM}", victim.getName());
    deathMessage = StringUtils.replace(deathMessage, "{+}", Integer.toString(attackerEvent.getChange()));
    deathMessage = StringUtils.replace(deathMessage, "{-}", Integer.toString(victimEvent.getChange()));
    deathMessage = StringUtils.replace(deathMessage, "{POINTS-FORMAT}", IntegerRange.inRange(vP, config.pointsFormat));
    deathMessage = StringUtils.replace(deathMessage, "{POINTS}", String.valueOf(victim.getRank().getPoints()));
    deathMessage = StringUtils.replace(deathMessage, "{WEAPON}", MaterialUtil.getMaterialName(a.getItemInHand().getType()));
    deathMessage = StringUtils.replace(deathMessage, "{REMAINING-HEALTH}", Double.toString(a.getHealth()));
    deathMessage = StringUtils.replace(deathMessage, "{REMAINING-HEARTS}", Double.toString(a.getHealth() / 2));
    if (victim.hasGuild()) {
        deathMessage = StringUtils.replace(deathMessage, "{VTAG}", StringUtils.replace(config.chatGuild, "{TAG}", victim.getGuild().getTag()));
    }
    if (attacker.hasGuild()) {
        deathMessage = StringUtils.replace(deathMessage, "{ATAG}", StringUtils.replace(config.chatGuild, "{TAG}", attacker.getGuild().getTag()));
    }
    deathMessage = StringUtils.replace(deathMessage, "{VTAG}", "");
    deathMessage = StringUtils.replace(deathMessage, "{ATAG}", "");
    event.setDeathMessage(deathMessage);
}
Also used : Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) RankChangeEvent(net.dzikoysk.funnyguilds.event.rank.RankChangeEvent) ConcurrencyManager(net.dzikoysk.funnyguilds.concurrency.ConcurrencyManager) ArrayList(java.util.ArrayList) RankUpdateUserRequest(net.dzikoysk.funnyguilds.concurrency.requests.rank.RankUpdateUserRequest) DummyGlobalUpdateUserRequest(net.dzikoysk.funnyguilds.concurrency.requests.dummy.DummyGlobalUpdateUserRequest) PointsChangeEvent(net.dzikoysk.funnyguilds.event.rank.PointsChangeEvent) DatabaseUpdateUserPointsRequest(net.dzikoysk.funnyguilds.concurrency.requests.database.DatabaseUpdateUserPointsRequest) PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) DatabaseUpdateGuildPointsRequest(net.dzikoysk.funnyguilds.concurrency.requests.database.DatabaseUpdateGuildPointsRequest) ConcurrencyTask(net.dzikoysk.funnyguilds.concurrency.ConcurrencyTask) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) ConcurrencyTaskBuilder(net.dzikoysk.funnyguilds.concurrency.ConcurrencyTaskBuilder) EventHandler(org.bukkit.event.EventHandler) SimpleEventHandler(net.dzikoysk.funnyguilds.event.SimpleEventHandler)

Example 20 with MessagesConfig

use of net.dzikoysk.funnyguilds.data.configs.MessagesConfig in project FunnyGuilds by FunnyGuilds.

the class ExcCreate method execute.

@SuppressWarnings("deprecation")
@Override
public void execute(CommandSender sender, String[] args) {
    MessagesConfig messages = Messages.getInstance();
    PluginConfig config = Settings.getConfig();
    Player player = (Player) sender;
    User user = User.get(player);
    if (!config.guildsEnabled) {
        player.sendMessage(messages.adminGuildsDisabled);
        return;
    }
    boolean isBlockedWorld = this.checkWorld(player);
    if (isBlockedWorld) {
        player.sendMessage(messages.blockedWorld);
        return;
    }
    if (user.hasGuild()) {
        player.sendMessage(messages.generalHasGuild);
        return;
    }
    if (args.length != 2) {
        switch(args.length) {
            case 0:
                player.sendMessage(messages.generalNoTagGiven);
                return;
            case 1:
                player.sendMessage(messages.generalNoNameGiven);
                return;
            default:
                player.sendMessage(messages.createMore);
                return;
        }
    }
    String tag = args[0];
    if (!config.guildTagKeepCase) {
        tag = config.guildTagUppercase ? tag.toUpperCase() : tag.toLowerCase();
    }
    String name = args[1];
    if (tag.length() > config.createTagLength) {
        player.sendMessage(messages.createTagLength.replace("{LENGTH}", Integer.toString(config.createTagLength)));
        return;
    }
    if (tag.length() < config.createTagMinLength) {
        player.sendMessage(messages.createTagMinLength.replace("{LENGTH}", Integer.toString(config.createTagMinLength)));
        return;
    }
    if (name.length() > config.createNameLength) {
        player.sendMessage(messages.createNameLength.replace("{LENGTH}", Integer.toString(config.createNameLength)));
        return;
    }
    if (name.length() < config.createNameMinLength) {
        player.sendMessage(messages.createNameMinLength.replace("{LENGTH}", Integer.toString(config.createNameMinLength)));
        return;
    }
    if (!tag.matches(config.tagRegex.getPattern())) {
        player.sendMessage(messages.createOLTag);
        return;
    }
    if (!name.matches(config.nameRegex.getPattern())) {
        player.sendMessage(messages.createOLName);
        return;
    }
    if (GuildUtils.nameExists(name)) {
        player.sendMessage(messages.createNameExists);
        return;
    }
    if (GuildUtils.tagExists(tag)) {
        player.sendMessage(messages.createTagExists);
        return;
    }
    if (config.checkForRestrictedGuildNames) {
        if (!GuildUtils.isNameValid(name)) {
            player.sendMessage(messages.restrictedGuildName);
            return;
        } else if (!GuildUtils.isTagValid(tag)) {
            player.sendMessage(messages.restrictedGuildTag);
            return;
        }
    }
    Location guildLocation = player.getLocation().getBlock().getLocation();
    if (config.regionsEnabled) {
        if (config.createCenterY != 0) {
            guildLocation.setY(config.createCenterY);
        }
        int d = config.regionSize + config.createDistance;
        if (config.enlargeItems != null) {
            d += config.enlargeItems.size() * config.enlargeSize;
        }
        if (d > player.getWorld().getSpawnLocation().distance(guildLocation)) {
            player.sendMessage(messages.createSpawn.replace("{DISTANCE}", Integer.toString(d)));
            return;
        }
    }
    if (config.rankCreateEnable) {
        int requiredRank = player.hasPermission("funnyguilds.vip.rank") ? config.rankCreateVip : config.rankCreate;
        int points = user.getRank().getPoints();
        if (points < requiredRank) {
            String msg = messages.createRank;
            msg = StringUtils.replace(msg, "{REQUIRED-FORMAT}", IntegerRange.inRange(requiredRank, config.pointsFormat).replace("{POINTS}", "{REQUIRED}"));
            msg = StringUtils.replace(msg, "{REQUIRED}", String.valueOf(requiredRank));
            msg = StringUtils.replace(msg, "{POINTS-FORMAT}", IntegerRange.inRange(points, config.pointsFormat));
            msg = StringUtils.replace(msg, "{POINTS}", String.valueOf(points));
            player.sendMessage(msg);
            return;
        }
    }
    List<ItemStack> requiredItems = player.hasPermission("funnyguilds.vip.items") ? config.createItemsVip : config.createItems;
    int requiredExperience = player.hasPermission("funnyguilds.vip.items") ? config.requiredExperienceVip : config.requiredExperience;
    double requiredMoney = player.hasPermission("funnyguilds.vip.items") ? config.requiredMoneyVip : config.requiredMoney;
    if (!user.getBypass()) {
        if (player.getTotalExperience() < requiredExperience) {
            String msg = messages.createExperience;
            msg = StringUtils.replace(msg, "{EXP}", String.valueOf(requiredExperience));
            player.sendMessage(msg);
            return;
        }
        if (VaultHook.isHooked() && !VaultHook.canAfford(player, requiredMoney)) {
            String notEnoughMoneyMessage = messages.createMoney;
            notEnoughMoneyMessage = StringUtils.replace(notEnoughMoneyMessage, "{MONEY}", Double.toString(requiredMoney));
            player.sendMessage(notEnoughMoneyMessage);
            return;
        }
        for (ItemStack requiredItem : requiredItems) {
            if (player.getInventory().containsAtLeast(requiredItem, requiredItem.getAmount())) {
                continue;
            }
            String msg = ItemUtils.translatePlaceholder(messages.createItems, requiredItems, requiredItem);
            player.sendMessage(msg);
            return;
        }
    }
    if (config.regionsEnabled) {
        if (RegionUtils.isIn(guildLocation)) {
            player.sendMessage(messages.createIsNear);
            return;
        }
        if (RegionUtils.isNear(guildLocation)) {
            player.sendMessage(messages.createIsNear);
            return;
        }
        if (config.createMinDistanceFromBorder != -1) {
            WorldBorder border = player.getWorld().getWorldBorder();
            double borderSize = border.getSize() / 2;
            double borderX = border.getCenter().getX() + borderSize;
            double borderZ = border.getCenter().getZ() + borderSize;
            double distanceX = Math.abs(borderX) - Math.abs(player.getLocation().getX());
            double distanceZ = Math.abs(borderZ) - Math.abs(player.getLocation().getZ());
            if ((distanceX < config.createMinDistanceFromBorder) || (distanceZ < config.createMinDistanceFromBorder)) {
                String notEnoughDistanceMessage = messages.createNotEnoughDistanceFromBorder;
                notEnoughDistanceMessage = StringUtils.replace(notEnoughDistanceMessage, "{BORDER-MIN-DISTANCE}", Double.toString(config.createMinDistanceFromBorder));
                player.sendMessage(notEnoughDistanceMessage);
                return;
            }
        }
    }
    if (!SimpleEventHandler.handle(new GuildCreateEvent(EventCause.USER, user, name, tag, guildLocation))) {
        return;
    }
    if (user.getBypass()) {
        user.setBypass(false);
    } else {
        player.getInventory().removeItem(ItemUtils.toArray(requiredItems));
        player.setTotalExperience(player.getTotalExperience() - requiredExperience);
        if (VaultHook.isHooked()) {
            VaultHook.withdrawFromPlayerBank(player, requiredMoney);
        }
    }
    Manager.getInstance().stop();
    Guild guild = new Guild(name);
    guild.setTag(tag);
    guild.setOwner(user);
    guild.setLives(config.warLives);
    guild.setBorn(System.currentTimeMillis());
    guild.setValidity(System.currentTimeMillis() + config.validityStart);
    guild.setAttacked(System.currentTimeMillis() - config.warWait + config.warProtection);
    guild.setPvP(config.damageGuild);
    user.setGuild(guild);
    if (config.regionsEnabled) {
        Region region = new Region(guild, guildLocation, config.regionSize);
        guild.setRegion(region.getName());
        guild.addRegion(region.getName());
        if (config.pasteSchematicOnCreation) {
            if (!SchematicHelper.pasteSchematic(config.guildSchematicFile, guildLocation, config.pasteSchematicWithAir)) {
                player.sendMessage(messages.createGuildCouldNotPasteSchematic);
            }
        } else if (config.createCenterSphere) {
            for (Location l : SpaceUtils.sphere(guildLocation, 4, 4, false, true, 0)) {
                if (l.getBlock().getType() != Material.BEDROCK) {
                    l.getBlock().setType(Material.AIR);
                }
            }
            for (Location l : SpaceUtils.sphere(guildLocation, 4, 4, true, true, 0)) {
                if (l.getBlock().getType() != Material.BEDROCK) {
                    l.getBlock().setType(Material.OBSIDIAN);
                }
            }
        }
        if (config.createMaterialData != null && config.createMaterialData.getItemType() != Material.AIR) {
            Block heart = guildLocation.getBlock().getRelative(BlockFace.DOWN);
            heart.setType(config.createMaterialData.getItemType());
            heart.setData(config.createMaterialData.getData());
        } else if (config.createEntityType != null) {
            EntityUtil.spawn(guild);
        }
        player.teleport(guildLocation);
    }
    Manager.getInstance().start();
    /*
        IndependentThread.actions(ActionType.RANK_UPDATE_GUILD, guild);
        IndependentThread.actions(ActionType.PREFIX_GLOBAL_ADD_GUILD, guild);
        IndependentThread.action(ActionType.PREFIX_GLOBAL_ADD_PLAYER, user.getName());
        */
    ConcurrencyManager concurrencyManager = FunnyGuilds.getInstance().getConcurrencyManager();
    concurrencyManager.postRequests(new RankUpdateGuildRequest(guild), new PrefixGlobalAddGuildRequest(guild), new PrefixGlobalAddPlayerRequest(user.getName()));
    MessageTranslator translator = new MessageTranslator().register("{GUILD}", name).register("{TAG}", tag).register("{PLAYER}", player.getName());
    player.sendMessage(translator.translate(messages.createGuild));
    Bukkit.broadcastMessage(translator.translate(messages.broadcastCreate));
}
Also used : Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) GuildCreateEvent(net.dzikoysk.funnyguilds.event.guild.GuildCreateEvent) ConcurrencyManager(net.dzikoysk.funnyguilds.concurrency.ConcurrencyManager) Guild(net.dzikoysk.funnyguilds.basic.Guild) PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) RankUpdateGuildRequest(net.dzikoysk.funnyguilds.concurrency.requests.rank.RankUpdateGuildRequest) PrefixGlobalAddPlayerRequest(net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalAddPlayerRequest) WorldBorder(org.bukkit.WorldBorder) PrefixGlobalAddGuildRequest(net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalAddGuildRequest) Region(net.dzikoysk.funnyguilds.basic.Region) Block(org.bukkit.block.Block) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) ItemStack(org.bukkit.inventory.ItemStack) MessageTranslator(net.dzikoysk.funnyguilds.data.util.MessageTranslator) Location(org.bukkit.Location)

Aggregations

MessagesConfig (net.dzikoysk.funnyguilds.data.configs.MessagesConfig)42 User (net.dzikoysk.funnyguilds.basic.User)39 Player (org.bukkit.entity.Player)38 Guild (net.dzikoysk.funnyguilds.basic.Guild)31 PluginConfig (net.dzikoysk.funnyguilds.data.configs.PluginConfig)17 MessageTranslator (net.dzikoysk.funnyguilds.data.util.MessageTranslator)12 ConcurrencyManager (net.dzikoysk.funnyguilds.concurrency.ConcurrencyManager)9 Region (net.dzikoysk.funnyguilds.basic.Region)8 Location (org.bukkit.Location)6 ItemStack (org.bukkit.inventory.ItemStack)6 Rank (net.dzikoysk.funnyguilds.basic.Rank)5 Date (java.util.Date)3 ConcurrencyTask (net.dzikoysk.funnyguilds.concurrency.ConcurrencyTask)3 ConcurrencyTaskBuilder (net.dzikoysk.funnyguilds.concurrency.ConcurrencyTaskBuilder)3 PrefixGlobalAddPlayerRequest (net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalAddPlayerRequest)3 PrefixGlobalRemovePlayerRequest (net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalRemovePlayerRequest)3 PrefixGlobalUpdatePlayer (net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalUpdatePlayer)3 ArrayList (java.util.ArrayList)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 PrefixUpdateGuildRequest (net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixUpdateGuildRequest)2