- Баллы
- 76
Здравствуйте, формучане. Подскажите, пожалуйста, каким образом можно реализовать действие(в моём случае hidePlayer) нажатием ПКМ с белой шерстью в руках с названием "Спрятать". Игроки должны быть спрятаны, а шерсть сменить цвет на чёрный и получить название "Показать". Вот то, что у меня вышло:
Что-то явно не так. Пока не пойму, что именно...
public class ItemHider implements Listener {
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
ItemStack item = e.getPlayer().getItemInHand();
if (item.getItemMeta().getDisplayName().equalsIgnoreCase("PlayerHider ON")) {
item.getItemMeta().setDisplayName("PlayerHider OFF");
for (Player pls : Bukkit.getOnlinePlayers()) {
p.hidePlayer(pls);
}
}
if (item.getItemMeta().getDisplayName().equals("PlayerHider OFF")) {
item.getItemMeta().setDisplayName("PlayerHider ON");
for (Player pls : Bukkit.getOnlinePlayers()) {
p.showPlayer(pls);
}
}
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
ItemStack item = e.getPlayer().getItemInHand();
if (item.getItemMeta().getDisplayName().equalsIgnoreCase("PlayerHider ON")) {
item.getItemMeta().setDisplayName("PlayerHider OFF");
for (Player pls : Bukkit.getOnlinePlayers()) {
p.hidePlayer(pls);
}
}
if (item.getItemMeta().getDisplayName().equals("PlayerHider OFF")) {
item.getItemMeta().setDisplayName("PlayerHider ON");
for (Player pls : Bukkit.getOnlinePlayers()) {
p.showPlayer(pls);
}
}
}
}
@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (plugin.getConfig().getBoolean("JoinMsg.enabled") == false) {
e.setJoinMessage(null);
ItemStack Hider = new ItemStack(Material.WOOL, 1);
ItemMeta meta = Hider.getItemMeta();
meta.setDisplayName("PlayerHider ON");
Hider.setItemMeta(meta);
e.getPlayer().getInventory().addItem(Hider);
}
}
public void onJoin(PlayerJoinEvent e) {
if (plugin.getConfig().getBoolean("JoinMsg.enabled") == false) {
e.setJoinMessage(null);
ItemStack Hider = new ItemStack(Material.WOOL, 1);
ItemMeta meta = Hider.getItemMeta();
meta.setDisplayName("PlayerHider ON");
Hider.setItemMeta(meta);
e.getPlayer().getInventory().addItem(Hider);
}
}