Dateien nach "src/main/java/de/nexuslobby/utils" hochladen
This commit is contained in:
70
src/main/java/de/nexuslobby/utils/PlayerHider.java
Normal file
70
src/main/java/de/nexuslobby/utils/PlayerHider.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package de.nexuslobby.utils;
|
||||
|
||||
import de.nexuslobby.NexusLobby;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayerHider implements Listener {
|
||||
|
||||
private final List<UUID> hidden = new ArrayList<>();
|
||||
|
||||
@EventHandler
|
||||
public void onJoin(PlayerJoinEvent event) {
|
||||
if (!NexusLobby.getInstance().getConfig().getBoolean("hider.enabled", true)) return;
|
||||
|
||||
Material material = Material.valueOf(NexusLobby.getInstance().getConfig().getString("hider.item", "REDSTONE"));
|
||||
int slot = NexusLobby.getInstance().getConfig().getInt("hider.slot", 8);
|
||||
|
||||
ItemStack item = new ItemStack(material);
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
meta.setDisplayName(NexusLobby.getInstance().getConfig().getString("hider.messages.all").replace("&", "§"));
|
||||
item.setItemMeta(meta);
|
||||
|
||||
event.getPlayer().getInventory().setItem(slot, item);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInteract(PlayerInteractEvent event) {
|
||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
||||
if (event.getItem() == null) return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
String allMsg = NexusLobby.getInstance().getConfig().getString("hider.messages.all").replace("&", "§");
|
||||
String noneMsg = NexusLobby.getInstance().getConfig().getString("hider.messages.none").replace("&", "§");
|
||||
|
||||
if (event.getItem().getItemMeta().getDisplayName().equals(allMsg)) {
|
||||
// Verstecken
|
||||
hidden.add(player.getUniqueId());
|
||||
for (Player target : Bukkit.getOnlinePlayers()) player.hidePlayer(NexusLobby.getInstance(), target);
|
||||
|
||||
updateItem(player, noneMsg);
|
||||
player.sendMessage(noneMsg);
|
||||
} else if (event.getItem().getItemMeta().getDisplayName().equals(noneMsg)) {
|
||||
// Zeigen
|
||||
hidden.remove(player.getUniqueId());
|
||||
for (Player target : Bukkit.getOnlinePlayers()) player.showPlayer(NexusLobby.getInstance(), target);
|
||||
|
||||
updateItem(player, allMsg);
|
||||
player.sendMessage(allMsg);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateItem(Player player, String name) {
|
||||
ItemStack item = player.getInventory().getItemInHand();
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
meta.setDisplayName(name);
|
||||
item.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user