Search in sources :

Example 16 with Region

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

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

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

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

the class ValidityUtils method broadcast.

public static void broadcast(Guild guild) {
    if (guild == null || guild.getName() == null) {
        return;
    }
    Region region = RegionUtils.get(guild.getRegion());
    String message = Messages.getInstance().broadcastValidity.replace("{GUILD}", guild.getName()).replace("{TAG}", guild.getTag()).replace("{GUILD}", guild.getName());
    if (region != null && region.getCenter() != null) {
        message = message.replace("{X}", Integer.toString(region.getCenter().getBlockX())).replace("{Y}", Integer.toString(region.getCenter().getBlockY())).replace("{Z}", Integer.toString(region.getCenter().getBlockZ()));
    } else {
        message = message.replace("{X}", "Brak informacji").replace("{Y}", "Brak informacji").replace("{Z}", "Brak informacji");
    }
    Bukkit.broadcastMessage(message);
}
Also used : Region(net.dzikoysk.funnyguilds.basic.Region)

Example 20 with Region

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

the class PlayerJoin method onJoin.

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    Player player = e.getPlayer();
    User user = User.get(player);
    PluginConfig config = Settings.getConfig();
    if (config.playerlistEnable && !AbstractTablist.hasTablist(player)) {
        AbstractTablist.createTablist(config.playerList, config.playerListHeader, config.playerListFooter, config.playerListPing, player);
    }
    user.getScoreboard();
    /*
        IndependentThread.actions(ActionType.PREFIX_GLOBAL_UPDATE_PLAYER, player);
        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, user);
        IndependentThread.actions(ActionType.RANK_UPDATE_USER, user);
         */
    ConcurrencyManager concurrencyManager = FunnyGuilds.getInstance().getConcurrencyManager();
    concurrencyManager.postRequests(new PrefixGlobalUpdatePlayer(player), new DummyGlobalUpdateUserRequest(user), new RankUpdateUserRequest(user));
    this.plugin.getServer().getScheduler().runTaskLaterAsynchronously(this.plugin, () -> {
        PacketExtension.registerPlayer(player);
        Version.isNewAvailable(player, false);
        Region region = RegionUtils.getAt(player.getLocation());
        if (region == null || region.getGuild() == null) {
            return;
        }
        if (config.createEntityType != null) {
            EntityUtil.spawn(region.getGuild(), player);
        }
    }, 30L);
}
Also used : PluginConfig(net.dzikoysk.funnyguilds.data.configs.PluginConfig) PrefixGlobalUpdatePlayer(net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalUpdatePlayer) Player(org.bukkit.entity.Player) PrefixGlobalUpdatePlayer(net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixGlobalUpdatePlayer) User(net.dzikoysk.funnyguilds.basic.User) ConcurrencyManager(net.dzikoysk.funnyguilds.concurrency.ConcurrencyManager) RankUpdateUserRequest(net.dzikoysk.funnyguilds.concurrency.requests.rank.RankUpdateUserRequest) Region(net.dzikoysk.funnyguilds.basic.Region) DummyGlobalUpdateUserRequest(net.dzikoysk.funnyguilds.concurrency.requests.dummy.DummyGlobalUpdateUserRequest) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Region (net.dzikoysk.funnyguilds.basic.Region)24 Guild (net.dzikoysk.funnyguilds.basic.Guild)16 User (net.dzikoysk.funnyguilds.basic.User)13 PluginConfig (net.dzikoysk.funnyguilds.data.configs.PluginConfig)13 Player (org.bukkit.entity.Player)13 MessagesConfig (net.dzikoysk.funnyguilds.data.configs.MessagesConfig)8 Location (org.bukkit.Location)8 EventHandler (org.bukkit.event.EventHandler)6 Block (org.bukkit.block.Block)5 ConcurrencyManager (net.dzikoysk.funnyguilds.concurrency.ConcurrencyManager)4 DatabaseGuild (net.dzikoysk.funnyguilds.data.database.DatabaseGuild)2 DatabaseRegion (net.dzikoysk.funnyguilds.data.database.DatabaseRegion)2 MessageTranslator (net.dzikoysk.funnyguilds.data.util.MessageTranslator)2 ItemStack (org.bukkit.inventory.ItemStack)2 MaterialData (org.bukkit.material.MaterialData)2 File (java.io.File)1 SQLException (java.sql.SQLException)1 LocalDateTime (java.time.LocalDateTime)1 ArrayList (java.util.ArrayList)1 UUID (java.util.UUID)1