diff --git a/.idea/misc.xml b/.idea/misc.xml index 602a0ddb..982bac40 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,5 +7,5 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 032257c0..da9c2b15 100644 --- a/pom.xml +++ b/pom.xml @@ -140,13 +140,6 @@ compile - - com.github.MyzelYam - SuperVanish - 6.1.8 - provided - - org.spigotmc spigot @@ -209,12 +202,6 @@ provided - - me.rayzr522 - jsonmessage - 1.0.0 - - com.github.vexsoftware votifier diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 6625e77a..4760a4a3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -22,7 +22,6 @@ import me.totalfreedom.totalfreedommod.bridge.EssentialsBridge; import me.totalfreedom.totalfreedommod.bridge.FAWEBridge; import me.totalfreedom.totalfreedommod.bridge.LibsDisguisesBridge; import me.totalfreedom.totalfreedommod.bridge.TFGuildsBridge; -import me.totalfreedom.totalfreedommod.bridge.VanishBridge; import me.totalfreedom.totalfreedommod.bridge.WorldEditBridge; import me.totalfreedom.totalfreedommod.bridge.WorldGuardBridge; import me.totalfreedom.totalfreedommod.caging.Cager; @@ -137,7 +136,7 @@ public class TotalFreedomMod extends JavaPlugin public SignBlocker snp; public EntityWiper ew; public Sitter st; - public VanishBridge vb; + public VanishHandler vh; public AMP amp; //public HubWorldRestrictions hwr; @@ -236,7 +235,7 @@ public class TotalFreedomMod extends JavaPlugin snp = new SignBlocker(); ew = new EntityWiper(); st = new Sitter(); - vb = new VanishBridge(); + vh = new VanishHandler(); amp = new AMP(); // Single admin utils diff --git a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java new file mode 100644 index 00000000..7d1e586d --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java @@ -0,0 +1,83 @@ +package me.totalfreedom.totalfreedommod; + +import me.totalfreedom.totalfreedommod.util.FLog; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.scheduler.BukkitRunnable; + +public class VanishHandler extends FreedomService +{ + + @Override + public void onStart() + { + } + + @Override + public void onStop() + { + } + + @EventHandler(priority = EventPriority.HIGH) + public void onPlayerJoin(PlayerJoinEvent event) + { + Player player = event.getPlayer(); + + for (Player p : server.getOnlinePlayers()) + { + if (!plugin.al.isAdmin(player) && plugin.al.isVanished(p.getName())) + { + player.hidePlayer(plugin, p); + } + } + + for (Player p : server.getOnlinePlayers()) + { + if (!plugin.al.isAdmin(p) && plugin.al.isVanished(player.getName())) + { + p.hidePlayer(plugin, player); + } + } + + if (plugin.al.isVanished(player.getName())) + { + plugin.esb.setVanished(player.getName(), true); + FLog.info(player.getName() + " joined while still vanished."); + plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has joined silently."); + event.setJoinMessage(null); + + new BukkitRunnable() + { + @Override + public void run() + { + if (!plugin.al.isVanished(player.getName())) + { + this.cancel(); + } + + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GOLD + "You are hidden from other players.")); + } + }.runTaskTimer(plugin, 0L, 4L); + } + } + + @EventHandler + public void onPlayerLeave(PlayerQuitEvent event) + { + Player player = event.getPlayer(); + + if (plugin.al.isVanished(player.getName())) + { + event.setQuitMessage(null); + FLog.info(player.getName() + " left while still vanished."); + plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has left silently."); + } + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java index 2b4d6c61..8d2f5b54 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java @@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.admin; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import de.myzelyam.api.vanish.VanishAPI; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; @@ -32,6 +31,7 @@ public class AdminList extends FreedomService private final Map ipTable = Maps.newHashMap(); public final List verifiedNoAdmins = new ArrayList<>(); public final Map> verifiedNoAdminIps = Maps.newHashMap(); + public static List vanished = new ArrayList<>(); @Override public void onStart() @@ -363,8 +363,8 @@ public class AdminList extends FreedomService updateTables(); } - public boolean isVanished(Player player) + public boolean isVanished(String player) { - return VanishAPI.isInvisible(player); + return vanished.contains(player); } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java deleted file mode 100644 index 097309b6..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java +++ /dev/null @@ -1,64 +0,0 @@ -package me.totalfreedom.totalfreedommod.bridge; - -import de.myzelyam.api.vanish.PlayerHideEvent; -import de.myzelyam.api.vanish.PlayerShowEvent; -import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.player.PlayerData; -import me.totalfreedom.totalfreedommod.rank.Displayable; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; - -public class VanishBridge extends FreedomService -{ - @Override - public void onStart() - { - } - - @Override - public void onStop() - { - } - - @EventHandler - public void onPlayerUnvanish(PlayerShowEvent event) - { - Player player = event.getPlayer(); - Displayable display = plugin.rm.getDisplay(player); - String tag = display.getColoredTag(); - - if (event.isSilent()) - { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently unvanished."); - } - else - { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " unvanished and is now visible to all players."); - FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); - plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); - } - - PlayerData playerData = plugin.pl.getData(player); - if (playerData.getTag() != null) - { - tag = FUtil.colorize(playerData.getTag()); - } - playerData.setTag(tag); - } - - @EventHandler - public void onPlayerVanish(PlayerHideEvent event) - { - Player player = event.getPlayer(); - if (event.isSilent()) - { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " vanished and is now only visible to admins."); - } - else - { - plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); - } - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index a3ab50d4..d2ee0af0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -1,9 +1,9 @@ package me.totalfreedom.totalfreedommod.command; -import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -96,7 +96,7 @@ public class Command_list extends FreedomCommand } else { - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - VanishAPI.getInvisiblePlayers().size()) + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size()) .append(ChatColor.BLUE) .append(" out of a maximum ") .append(ChatColor.RED) @@ -109,11 +109,11 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p)) + if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p.getName())) { continue; } - if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p)) + if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p.getName())) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java deleted file mode 100644 index 4a20ae47..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java +++ /dev/null @@ -1,44 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import de.myzelyam.api.vanish.VanishAPI; -import me.totalfreedom.totalfreedommod.rank.Rank; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Hide yourself from other players", usage = "/ [-s]", aliases = "v,ev,evanish") -public class Command_vanish extends FreedomCommand -{ - @Override - public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - if (args.length == 0) - { - if (!VanishAPI.isInvisible(playerSender)) - { - VanishAPI.hidePlayer(playerSender); - } - else - { - VanishAPI.showPlayer(playerSender); - } - } - else if (args[0].equalsIgnoreCase("-s") || args[0].equalsIgnoreCase("-v")) - { - if (!VanishAPI.isInvisible(playerSender)) - { - VanishAPI.getPlugin().getVisibilityChanger().hidePlayer(playerSender, null, true); - } - else - { - VanishAPI.getPlugin().getVisibilityChanger().showPlayer(playerSender, null, true); - } - } - else - { - return false; - } - return true; - } -} \ No newline at end of file