69 lines
2.2 KiB
Java
69 lines
2.2 KiB
Java
package me.totalfreedom.totalfreedommod;
|
|
|
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
|
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
|
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();
|
|
|
|
server.getOnlinePlayers().stream().filter(pl -> !plugin.al.isAdmin(player)
|
|
&& plugin.al.isVanished(pl.getUniqueId())).forEach(pl -> player.hidePlayer(plugin, pl));
|
|
|
|
server.getOnlinePlayers().stream().filter(pl -> !plugin.al.isAdmin(pl)
|
|
&& plugin.al.isVanished(player.getUniqueId())).forEach(pl -> pl.hidePlayer(plugin, player));
|
|
|
|
if (plugin.al.isVanished(player.getUniqueId()))
|
|
{
|
|
plugin.esb.setVanished(player.getName(), true);
|
|
plugin.cm.messageAllAdmins("<yellow><player> has joined silently.", Placeholder.unparsed("player", player.getName()));
|
|
event.joinMessage(null);
|
|
|
|
new BukkitRunnable()
|
|
{
|
|
@Override
|
|
public void run()
|
|
{
|
|
if (plugin.al.isVanished(player.getUniqueId()))
|
|
{
|
|
player.sendActionBar(FUtil.miniMessage("<gold>You are hidden from other players."));
|
|
} else
|
|
{
|
|
this.cancel();
|
|
}
|
|
}
|
|
}.runTaskTimer(plugin, 0L, 4L);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onPlayerLeave(PlayerQuitEvent event)
|
|
{
|
|
Player player = event.getPlayer();
|
|
|
|
if (plugin.al.isVanished(player.getUniqueId()))
|
|
{
|
|
event.quitMessage(null);
|
|
plugin.cm.messageAllAdmins("<yellow><player> has left silently.", Placeholder.unparsed("player", player.getName()));
|
|
}
|
|
}
|
|
} |