mirror of
https://github.com/TheDeus-Group/TFM-4.3-Reloaded.git
synced 2024-05-16 05:21:17 +00:00
108 lines
3 KiB
Java
108 lines
3 KiB
Java
package me.StevenLawson.TotalFreedomMod.manager;
|
|
|
|
import java.util.ArrayList;
|
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
import me.StevenLawson.TotalFreedomMod.admin.Admin;
|
|
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
|
import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
|
|
import me.StevenLawson.TotalFreedomMod.player.PlayerData;
|
|
import me.StevenLawson.TotalFreedomMod.player.PlayerRank;
|
|
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
|
import net.md_5.bungee.api.ChatColor;
|
|
import net.md_5.bungee.api.chat.TextComponent;
|
|
import net.md_5.bungee.api.chat.TranslatableComponent;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
|
|
public class VanishManager {
|
|
|
|
private static final ArrayList<Player> vanishedPlayers = new ArrayList<>();
|
|
|
|
public static void vanishPlayer(Player player) {
|
|
if (vanishedPlayers.contains(player)) {
|
|
// Fail silently
|
|
|
|
return;
|
|
}
|
|
|
|
vanishedPlayers.add(player);
|
|
}
|
|
|
|
public static void unvanishPlayer(Player player) {
|
|
if (!vanishedPlayers.contains(player)) {
|
|
// Fail silently
|
|
|
|
return;
|
|
}
|
|
|
|
vanishedPlayers.remove(player);
|
|
}
|
|
|
|
public static boolean isVanished(Player player) {
|
|
return vanishedPlayers.contains(player);
|
|
}
|
|
|
|
public static void loadVanishedPlayers(Player player) {
|
|
for (Player vanishedPlayer : vanishedPlayers) {
|
|
player.hidePlayer(vanishedPlayer);
|
|
}
|
|
}
|
|
|
|
public static void fakeLeave(Player player) {
|
|
TotalFreedomMod.fuckoffEnabledFor.remove(player);
|
|
|
|
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
|
|
|
playerdata.disarmMP44();
|
|
|
|
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
|
if (!onlinePlayer.equals(player)) {
|
|
onlinePlayer.hidePlayer(player);
|
|
}
|
|
}
|
|
|
|
DiscordBridge.transmitMessage(String.format("**%s left the server**",
|
|
DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
|
|
|
|
TextComponent leftComponent = new TextComponent(
|
|
String.format("%s left the game.", player.getName()));
|
|
leftComponent.setColor(ChatColor.YELLOW);
|
|
|
|
Bukkit.spigot().broadcast(leftComponent);
|
|
|
|
vanishPlayer(player);
|
|
}
|
|
|
|
public static void fakeJoin(Player player) {
|
|
Admin asAdmin = AdminList.getEntry(player);
|
|
|
|
TranslatableComponent joinComponent = new TranslatableComponent(
|
|
"multiplayer.player.joined");
|
|
joinComponent.addWith(player.getName());
|
|
joinComponent.setColor(ChatColor.YELLOW);
|
|
|
|
TextComponent loginComponent = Utilities.fromBaseComponents(
|
|
TextComponent.fromLegacyText(
|
|
String.format(ChatColor.AQUA + "%s is %s", player.getName(),
|
|
Utilities.colorize(PlayerRank.getLoginMessage(player)))));
|
|
|
|
Bukkit.spigot().broadcast(loginComponent);
|
|
Bukkit.spigot().broadcast(joinComponent);
|
|
|
|
DiscordBridge.transmitMessage(String.format("**%s joined the server**", player.getName()));
|
|
|
|
unvanishPlayer(player);
|
|
|
|
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
|
onlinePlayer.showPlayer(player);
|
|
}
|
|
}
|
|
|
|
public static int getFakeOnlinePlayers() {
|
|
if (vanishedPlayers.size() == 0) {
|
|
return Bukkit.getOnlinePlayers().size();
|
|
}
|
|
return Bukkit.getOnlinePlayers().size() - vanishedPlayers.size();
|
|
}
|
|
}
|