Search in sources :

Example 21 with Guild

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

the class IndividualPrefix method addGuild.

public void addGuild(Guild to) {
    if (to == null) {
        return;
    }
    Scoreboard scoreboard = getUser().getScoreboard();
    Guild guild = getUser().getGuild();
    if (guild != null) {
        if (guild.equals(to)) {
            initialize();
            return;
        }
        Team team = scoreboard.getTeam(to.getTag());
        if (team == null) {
            team = scoreboard.registerNewTeam(to.getTag());
        }
        for (User u : to.getMembers()) {
            if (!team.hasEntry(u.getName())) {
                team.addEntry(u.getName());
            }
        }
        String prefix = Settings.getConfig().prefixOther;
        if (guild.getAllies().contains(to)) {
            prefix = Settings.getConfig().prefixAllies;
        }
        if (guild.getEnemies().contains(to)) {
            prefix = Settings.getConfig().prefixEnemies;
        }
        team.setPrefix(replace(prefix, "{TAG}", to.getTag()));
    } else {
        Team team = scoreboard.getTeam(to.getTag());
        if (team == null) {
            team = scoreboard.registerNewTeam(to.getTag());
        }
        for (User u : to.getMembers()) {
            if (!team.hasEntry(u.getName())) {
                team.addEntry(u.getName());
            }
        }
        team.setPrefix(replace(Settings.getConfig().prefixOther, "{TAG}", to.getTag()));
    }
}
Also used : User(net.dzikoysk.funnyguilds.basic.User) Scoreboard(org.bukkit.scoreboard.Scoreboard) Team(org.bukkit.scoreboard.Team) Guild(net.dzikoysk.funnyguilds.basic.Guild)

Example 22 with Guild

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

the class Data method invitations.

private void invitations(DO todo) {
    File file = new File(folder, "invitations.yml");
    if (todo == DO.SAVE) {
        file.delete();
        Yamler pc = new Yamler(file);
        for (Guild guild : GuildUtils.getGuilds()) {
            List<InvitationList.Invitation> invitationList = InvitationList.getInvitationsFrom(guild);
            for (InvitationList.Invitation invitation : invitationList) {
                List<String> allyInvitations = new ArrayList<>();
                List<String> playerInvitations = new ArrayList<>();
                if (invitation.isToGuild()) {
                    playerInvitations.add(invitation.getFor().toString());
                } else if (invitation.isToAlly()) {
                    allyInvitations.add(invitation.getFor().toString());
                }
                pc.set(invitation.getFrom().toString() + ".guilds", allyInvitations);
                pc.set(invitation.getFrom().toString() + ".players", playerInvitations);
            }
        }
        pc.save();
    } else if (todo == DO.LOAD) {
        if (!file.exists()) {
            return;
        }
        Yamler pc = new Yamler(file);
        for (String key : pc.getKeys(false)) {
            Guild guild = GuildUtils.getByUUID(UUID.fromString(key));
            if (guild != null) {
                List<String> allyInvitations = pc.getStringList(key + ".guilds");
                List<String> playerInvitations = pc.getStringList(key + ".players");
                for (String ally : allyInvitations) {
                    Guild allyGuild = GuildUtils.getByUUID(UUID.fromString(ally));
                    if (allyGuild != null) {
                        InvitationList.createInvitation(guild, allyGuild);
                    }
                }
                for (String player : playerInvitations) {
                    InvitationList.createInvitation(guild, UUID.fromString(player));
                }
            }
        }
    }
}
Also used : InvitationList(net.dzikoysk.funnyguilds.data.util.InvitationList) ArrayList(java.util.ArrayList) InvitationList(net.dzikoysk.funnyguilds.data.util.InvitationList) ArrayList(java.util.ArrayList) List(java.util.List) Guild(net.dzikoysk.funnyguilds.basic.Guild) File(java.io.File) Yamler(net.dzikoysk.funnyguilds.util.Yamler)

Example 23 with Guild

use of net.dzikoysk.funnyguilds.basic.Guild 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 24 with Guild

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

the class EntityExplode method onExplode.

@EventHandler
public void onExplode(EntityExplodeEvent event) {
    List<Block> destroyedBlocks = event.blockList();
    Location explodeLocation = event.getLocation();
    PluginConfig pluginConfiguration = Settings.getConfig();
    List<Location> sphere = SpaceUtils.sphere(explodeLocation, pluginConfiguration.explodeRadius, pluginConfiguration.explodeRadius, false, true, 0);
    Map<Material, Double> materials = pluginConfiguration.explodeMaterials;
    destroyedBlocks.removeIf(blocks -> {
        Region region = RegionUtils.getAt(blocks.getLocation());
        return region != null && region.getGuild() != null && !region.getGuild().canBeAttacked();
    });
    Region region = RegionUtils.getAt(explodeLocation);
    if (region != null) {
        Guild guild = region.getGuild();
        if (pluginConfiguration.guildTNTProtectionEnabled) {
            LocalDateTime start = pluginConfiguration.guildTNTProtectionStartTime;
            LocalDateTime end = pluginConfiguration.guildTNTProtectionEndTime;
            LocalDateTime now = LocalDateTime.now();
            if ((now.isAfter(start) || now.equals(start)) && (now.isBefore(end) || now.equals(end))) {
                event.setCancelled(true);
                return;
            }
        }
        if (pluginConfiguration.warTntProtection & !guild.canBeAttacked()) {
            event.setCancelled(true);
            return;
        }
        Location protect = region.getCenter().getBlock().getRelative(BlockFace.DOWN).getLocation();
        destroyedBlocks.removeIf(block -> block.getLocation().equals(protect));
        guild.setBuild(System.currentTimeMillis() + Settings.getConfig().regionExplode * 1000L);
        for (User user : guild.getMembers()) {
            Player player = user.getPlayer();
            if (player != null) {
                if (informationMessageCooldowns.cooldown(player, TimeUnit.SECONDS, pluginConfiguration.infoPlayerCooldown)) {
                    player.sendMessage(Messages.getInstance().regionExplode.replace("{TIME}", Integer.toString(Settings.getConfig().regionExplode)));
                }
            }
        }
    }
    for (Location l : sphere) {
        Material material = l.getBlock().getType();
        if (!materials.containsKey(material)) {
            continue;
        }
        if (material == Material.WATER || material == Material.LAVA) {
            if (SpaceUtils.chance(materials.get(material))) {
                l.getBlock().setType(Material.AIR);
            }
        } else {
            if (SpaceUtils.chance(materials.get(material))) {
                l.getBlock().breakNaturally();
            }
        }
    }
}
Also used : LocalDateTime(java.time.LocalDateTime) Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) Material(org.bukkit.Material) Guild(net.dzikoysk.funnyguilds.basic.Guild) PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) Block(org.bukkit.block.Block) Region(net.dzikoysk.funnyguilds.basic.Region) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 25 with Guild

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

the class PlayerCommand method onCommand.

@EventHandler
public void onCommand(PlayerCommandPreprocessEvent event) {
    Player player = event.getPlayer();
    if (player.hasPermission("funnyguilds.admin")) {
        return;
    }
    String[] splited = event.getMessage().split("\\s+");
    if (splited.length == 0) {
        return;
    }
    String command = splited[0];
    for (String s : Settings.getConfig().regionCommands) {
        if (("/" + s).equalsIgnoreCase(command)) {
            command = null;
            break;
        }
    }
    if (command != null) {
        return;
    }
    Region region = RegionUtils.getAt(player.getLocation());
    if (region == null) {
        return;
    }
    Guild guild = region.getGuild();
    User user = User.get(player);
    if (guild.getMembers().contains(user)) {
        return;
    }
    event.setCancelled(true);
    player.sendMessage(Messages.getInstance().regionCommand);
}
Also used : Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) Region(net.dzikoysk.funnyguilds.basic.Region) Guild(net.dzikoysk.funnyguilds.basic.Guild) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Guild (net.dzikoysk.funnyguilds.basic.Guild)54 User (net.dzikoysk.funnyguilds.basic.User)43 Player (org.bukkit.entity.Player)38 MessagesConfig (net.dzikoysk.funnyguilds.data.configs.MessagesConfig)31 PluginConfig (net.dzikoysk.funnyguilds.data.configs.PluginConfig)19 Region (net.dzikoysk.funnyguilds.basic.Region)16 MessageTranslator (net.dzikoysk.funnyguilds.data.util.MessageTranslator)12 ConcurrencyManager (net.dzikoysk.funnyguilds.concurrency.ConcurrencyManager)11 Location (org.bukkit.Location)8 Block (org.bukkit.block.Block)5 EventHandler (org.bukkit.event.EventHandler)5 ArrayList (java.util.ArrayList)4 ItemStack (org.bukkit.inventory.ItemStack)4 Date (java.util.Date)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 GuildDeleteEvent (net.dzikoysk.funnyguilds.event.guild.GuildDeleteEvent)3 File (java.io.File)2 UUID (java.util.UUID)2