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);
}
});
}
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;
}
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;
}
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);
}
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);
}
Aggregations