Search in sources :

Example 41 with Guild

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

the class AxcLeader 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 (args.length < 2) {
        sender.sendMessage(messages.generalNoNickGiven);
        return;
    }
    if (!UserUtils.playedBefore(args[1])) {
        sender.sendMessage(messages.generalNotPlayedBefore);
        return;
    }
    User user = User.get(args[1]);
    if (!guild.getMembers().contains(user)) {
        sender.sendMessage(messages.adminUserNotMemberOf);
        return;
    }
    if (guild.getOwner().equals(user)) {
        sender.sendMessage(messages.adminAlreadyLeader);
        return;
    }
    User admin = (sender instanceof Player) ? User.get(sender.getName()) : null;
    if (!SimpleEventHandler.handle(new GuildMemberLeaderEvent(admin == null ? EventCause.CONSOLE : EventCause.ADMIN, admin, guild, user))) {
        return;
    }
    Player leaderPlayer = user.getPlayer();
    guild.setOwner(user);
    sender.sendMessage(messages.leaderSet);
    if (leaderPlayer != null) {
        leaderPlayer.sendMessage(messages.leaderOwner);
    }
    String message = messages.leaderMembers.replace("{PLAYER}", user.getName());
    for (User member : guild.getOnlineMembers()) {
        member.getPlayer().sendMessage(message);
    }
}
Also used : Player(org.bukkit.entity.Player) GuildMemberLeaderEvent(net.dzikoysk.funnyguilds.event.guild.member.GuildMemberLeaderEvent) User(net.dzikoysk.funnyguilds.basic.User) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) Guild(net.dzikoysk.funnyguilds.basic.Guild)

Example 42 with Guild

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

the class PlayerMove method onMove.

@EventHandler
public void onMove(PlayerMoveEvent event) {
    final Location from = event.getFrom();
    final Location to = event.getTo();
    final Player player = event.getPlayer();
    PluginConfig config = Settings.getConfig();
    MessagesConfig messages = Messages.getInstance();
    Bukkit.getScheduler().runTaskAsynchronously(FunnyGuilds.getInstance(), () -> {
        if (from == null || to == null) {
            return;
        }
        if (from.getBlockX() == to.getBlockX() && from.getBlockZ() == to.getBlockZ()) {
            return;
        }
        User user = User.get(player);
        Region region = RegionUtils.getAt(to);
        if (region == null && user.getEnter()) {
            user.setEnter(false);
            region = RegionUtils.getAt(from);
            if (region != null) {
                Guild guild = region.getGuild();
                FunnyGuilds.getInstance().getServer().getScheduler().runTaskLaterAsynchronously(FunnyGuilds.getInstance(), () -> {
                    if (config.createEntityType != null) {
                        EntityUtil.despawn(guild, player);
                    }
                }, 40L);
                MessageTranslator translator = new MessageTranslator().register("{GUILD}", guild.getName()).register("{TAG}", guild.getTag());
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.ACTIONBAR)) {
                    PacketSender.sendPacket(player, NotificationUtil.createActionbarNotification(translator.translate(messages.notificationActionbarLeaveGuildRegion)));
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.BOSSBAR)) {
                    NotificationBar.set(player, translator.translate(messages.notificationBossbarLeaveGuildRegion), 1, config.regionNotificationTime);
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.CHAT)) {
                    player.sendMessage(translator.translate(messages.notificationChatLeaveGuildRegion));
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.TITLE)) {
                    PacketSender.sendPacket(player, NotificationUtil.createTitleNotification(translator.translate(messages.notificationTitleLeaveGuildRegion), translator.translate(messages.notificationSubtitleLeaveGuildRegion), config.notificationTitleFadeIn, config.notificationTitleStay, config.notificationTitleFadeOut));
                }
            }
        } else if (!user.getEnter() && region != null) {
            Guild guild = region.getGuild();
            if (guild == null || guild.getName() == null) {
                return;
            }
            user.setEnter(true);
            FunnyGuilds.getInstance().getServer().getScheduler().runTaskLaterAsynchronously(FunnyGuilds.getInstance(), () -> {
                if (config.createEntityType != null) {
                    EntityUtil.spawn(guild, player);
                }
            }, 40L);
            MessageTranslator translator = new MessageTranslator().register("{GUILD}", guild.getName()).register("{TAG}", guild.getTag());
            if (config.regionEnterNotificationStyle.contains(NotificationStyle.ACTIONBAR)) {
                PacketSender.sendPacket(player, NotificationUtil.createActionbarNotification(translator.translate(messages.notificationActionbarEnterGuildRegion)));
            }
            if (config.regionEnterNotificationStyle.contains(NotificationStyle.BOSSBAR)) {
                NotificationBar.set(player, translator.translate(messages.notificationBossbarEnterGuildRegion), 1, config.regionNotificationTime);
            }
            if (config.regionEnterNotificationStyle.contains(NotificationStyle.CHAT)) {
                player.sendMessage(translator.translate(messages.notificationChatEnterGuildRegion));
            }
            if (config.regionEnterNotificationStyle.contains(NotificationStyle.TITLE)) {
                PacketSender.sendPacket(player, NotificationUtil.createTitleNotification(translator.translate(messages.notificationTitleEnterGuildRegion), translator.translate(messages.notificationSubtitleEnterGuildRegion), config.notificationTitleFadeIn, config.notificationTitleStay, config.notificationTitleFadeOut));
            }
            if (player.hasPermission("funnyguilds.admin.notification")) {
                return;
            }
            if (user.getNotificationTime() > 0 && System.currentTimeMillis() < user.getNotificationTime()) {
                return;
            }
            if (!config.regionEnterNotificationGuildMember && user.getGuild() != null && guild.getTag().equals(user.getGuild().getTag())) {
                return;
            }
            translator = new MessageTranslator().register("{PLAYER}", player.getName());
            for (User u : guild.getOnlineMembers()) {
                if (u == null) {
                    continue;
                }
                Player member = u.getPlayer();
                if (member == null || !member.isOnline()) {
                    continue;
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.ACTIONBAR)) {
                    PacketSender.sendPacket(member, NotificationUtil.createActionbarNotification(translator.translate(messages.notificationActionbarIntruderEnterGuildRegion)));
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.BOSSBAR)) {
                    NotificationBar.set(member, translator.translate(messages.notificationBossbarIntruderEnterGuildRegion), 1, config.regionNotificationTime);
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.CHAT)) {
                    member.sendMessage(translator.translate(messages.notificationChatIntruderEnterGuildRegion));
                }
                if (config.regionEnterNotificationStyle.contains(NotificationStyle.TITLE)) {
                    PacketSender.sendPacket(member, NotificationUtil.createTitleNotification(translator.translate(messages.notificationTitleIntruderEnterGuildRegion), translator.translate(messages.notificationSubtitleIntruderEnterGuildRegion), config.notificationTitleFadeIn, config.notificationTitleStay, config.notificationTitleFadeOut));
                }
            }
            user.setNotificationTime(System.currentTimeMillis() + 1000 * config.regionNotificationCooldown);
        }
    });
}
Also used : PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) Player(org.bukkit.entity.Player) User(net.dzikoysk.funnyguilds.basic.User) Region(net.dzikoysk.funnyguilds.basic.Region) MessagesConfig(net.dzikoysk.funnyguilds.data.configs.MessagesConfig) Guild(net.dzikoysk.funnyguilds.basic.Guild) MessageTranslator(net.dzikoysk.funnyguilds.data.util.MessageTranslator) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 43 with Guild

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

the class ProtectionSystem method build.

public static boolean build(Player player, Location location, boolean build) {
    if (player == null || location == null) {
        return false;
    }
    if (player.hasPermission("funnyguilds.admin.build")) {
        return false;
    }
    Region region = RegionUtils.getAt(location);
    if (region == null) {
        return false;
    }
    Guild guild = region.getGuild();
    if (guild == null || guild.getName() == null) {
        return false;
    }
    User user = User.get(player);
    if (guild.getMembers().contains(user)) {
        if (build && !guild.canBuild()) {
            player.sendMessage(Messages.getInstance().regionExplodeInteract.replace("{TIME}", Long.toString(TimeUnit.MILLISECONDS.toSeconds(guild.getBuild() - System.currentTimeMillis()))));
            return true;
        } else if (location.equals(region.getCenter().getBlock().getRelative(BlockFace.DOWN).getLocation())) {
            MaterialData md = Settings.getConfig().createMaterialData;
            if (md != null && md.getItemType() != Material.AIR) {
                return true;
            }
        }
        return false;
    }
    player.sendMessage(Messages.getInstance().regionOther);
    return true;
}
Also used : User(net.dzikoysk.funnyguilds.basic.User) Region(net.dzikoysk.funnyguilds.basic.Region) MaterialData(org.bukkit.material.MaterialData) Guild(net.dzikoysk.funnyguilds.basic.Guild)

Example 44 with Guild

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

the class SecuritySystem method checkPlayer.

public boolean checkPlayer(Player player, SecurityType type, Object... values) {
    if (!Settings.getConfig().regionsEnabled) {
        return false;
    }
    if (isBanned(User.get(player))) {
        return true;
    }
    switch(type) {
        case FREECAM:
            Guild guild = null;
            for (Object value : values) {
                if (value instanceof Guild) {
                    guild = (Guild) value;
                }
            }
            if (guild == null) {
                return false;
            }
            Region region = RegionUtils.get(guild.getRegion());
            if (region == null) {
                return false;
            }
            int dis = (int) region.getCenter().distance(player.getLocation());
            if (dis < 6) {
                return false;
            }
            for (Player w : Bukkit.getOnlinePlayers()) {
                if (w.isOp()) {
                    w.sendMessage(SecurityUtils.getBustedMessage(player.getName(), "FreeCam"));
                    w.sendMessage(SecurityUtils.getNoteMessage("Zaatakowal krysztal z odleglosci &c" + dis + " kratek"));
                }
            }
            blocked.add(User.get(player));
            return true;
        case EVERYTHING:
            break;
        default:
            break;
    }
    return false;
}
Also used : Player(org.bukkit.entity.Player) Region(net.dzikoysk.funnyguilds.basic.Region) Guild(net.dzikoysk.funnyguilds.basic.Guild)

Example 45 with Guild

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

the class Parser method parseRank.

public static String parseRank(String var) {
    if (!var.contains("TOP-")) {
        return null;
    }
    int i = getIndex(var);
    if (i <= 0) {
        FunnyLogger.error("Index in TOP- must be greater or equal to 1!");
        return null;
    }
    PluginConfig c = Settings.getConfig();
    List<Guild> rankedGuilds = new ArrayList<>();
    for (int in = 1; in <= RankManager.getInstance().guilds(); in++) {
        Guild guild = RankManager.getInstance().getGuild(in);
        if (guild != null && guild.getMembers().size() >= c.minMembersToInclude) {
            rankedGuilds.add(guild);
        }
    }
    if (var.contains("GTOP")) {
        if (rankedGuilds.isEmpty() || i - 1 >= rankedGuilds.size()) {
            return StringUtils.replace(var, "{GTOP-" + i + '}', Messages.getInstance().gtopNoValue);
        } else {
            Guild guild = rankedGuilds.get(i - 1);
            int points = guild.getRank().getPoints();
            String pointsFormat = c.gtopPoints;
            if (!pointsFormat.isEmpty()) {
                pointsFormat = pointsFormat.replace("{POINTS-FORMAT}", IntegerRange.inRange(points, c.pointsFormat));
                pointsFormat = pointsFormat.replace("{POINTS}", String.valueOf(points));
            }
            return StringUtils.replace(var, "{GTOP-" + i + '}', guild.getTag() + pointsFormat);
        }
    } else if (var.contains("PTOP")) {
        User user = RankManager.getInstance().getUser(i);
        if (user != null) {
            int points = user.getRank().getPoints();
            String pointsFormat = c.ptopPoints;
            if (!pointsFormat.isEmpty()) {
                pointsFormat = pointsFormat.replace("{POINTS-FORMAT}", IntegerRange.inRange(points, c.pointsFormat));
                pointsFormat = pointsFormat.replace("{POINTS}", String.valueOf(points));
            }
            return StringUtils.replace(var, "{PTOP-" + i + '}', (user.isOnline() ? c.ptopOnline : c.ptopOffline) + user.getName() + pointsFormat);
        } else {
            return StringUtils.replace(var, "{PTOP-" + i + '}', Messages.getInstance().ptopNoValue);
        }
    }
    return null;
}
Also used : PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) User(net.dzikoysk.funnyguilds.basic.User) ArrayList(java.util.ArrayList) Guild(net.dzikoysk.funnyguilds.basic.Guild)

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