You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

FynniX

User / Kunde

  • "FynniX" started this thread

Posts: 1

  • Send private message

1

Thursday, November 1st 2018, 5:45pm

Probleme / Fragen für ToggleVisible Plugin

Hallo Leute,
Ich habe 3 Fragen.
1.





Also wenn ich bei mir etwas Verzaubere, per Eclipse, dann kann ich nicht wählen das dort nichts steht(Also in diesem Fall Unbreaking 1 sollte zu gar nichts werden). Wie mache ich das?

2.
Un zwar möchte ich es so machen das wenn ich auf den jeweiligen Block drücke, welche für Spieler Aktivieren/Deaktivieren stehen. Soll der eine, eine Verzauberung haben und der andere soll dann halt immer keine haben. Damit man sieht welchen man ausgewählt hat. Wie kann ich das machen?

Spoiler Spoiler

@SuppressWarnings("deprecation")
@EventHandler
public void onClick(InventoryClickEvent e) {
Player p = (Player) e.getWhoClicked();
if(e.getInventory().getName().equalsIgnoreCase("§7Spieler verstecken")) {
try {
if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§aSpieler Aktivieren!")) {
e.getCurrentItem().getItemMeta().addEnchant(Enchantment.DURABILITY, 1, false);
for(Player all : Bukkit.getOnlinePlayers()) {
p.showPlayer(all);
}
e.setCancelled(true);
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§cSpieler Deaktivieren!")) {
e.getCurrentItem().getItemMeta().addEnchant(Enchantment.DURABILITY, 1, false);
for(Player all : Bukkit.getOnlinePlayers()) {
p.hidePlayer(all);
}
e.setCancelled(true);
}
} catch (Exception ex) {

}
} }


Ich hatte es so ausprobiert funktioniert aber nicht so, was ich auch nicht weiß wie ich dann die Verzauberung vom anderen wieder lösche. Habe die ausschlaggebenden Zeilen größer gemacht.

So das dritte ist, dass ich nicht weiß wie ich verbiete etwas im Inventar zu verbieten. Hatte es mit einem "InventarDragEvent" probiert funktioniert, aber nicht.

So und jetzt nochmal meinen ganze Klasse vom ToggleVisible.
LG Fynn ;)

Spoiler Spoiler

package main;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
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.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class ToggleVisible implements Listener{

public ToggleVisible(main plugin) {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
ItemStack togglestack = new ItemStack(Material.BLAZE_ROD);
ItemMeta togglemeta = togglestack.getItemMeta();
togglemeta.setDisplayName("§aSpieler Verstecken §7(Rechtsklick)");
togglestack.setItemMeta(togglemeta);
p.getInventory().setItem(5, togglestack);
}

@EventHandler
public void onClick(PlayerInteractEvent e) {
Player p = e.getPlayer();

if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
try {
if (e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("§aSpieler Verstecken §7(Rechtsklick)")) {
Inventory inv = Bukkit.getServer().createInventory(null, 9, "§7Spieler verstecken");
ItemStack greenstack = new ItemStack(Material.WOOL, 1, (short) 13);
ItemStack graystack = new ItemStack(Material.WOOL, 1, (short) 14);
ItemMeta greenmeta = greenstack.getItemMeta();
ItemMeta graymeta = graystack.getItemMeta();
greenmeta.setDisplayName("§aSpieler Aktivieren!");
graymeta.setDisplayName("§cSpieler Deaktivieren!");
greenstack.setItemMeta(greenmeta);
graystack.setItemMeta(graymeta);
inv.setItem(3, greenstack);
inv.setItem(5, graystack);
p.getInventory().getHelmet();
p.openInventory(inv);
}
} catch (Exception ex) {
}
}
}

@SuppressWarnings("deprecation")
@EventHandler
public void onClick(InventoryClickEvent e) {
Player p = (Player) e.getWhoClicked();
if(e.getInventory().getName().equalsIgnoreCase("§7Spieler verstecken")) {
try {
if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§aSpieler Aktivieren!")) {
e.getCurrentItem().getItemMeta().addEnchant(Enchantment.DURABILITY, 1, false);
for(Player all : Bukkit.getOnlinePlayers()) {
p.showPlayer(all);
}
e.setCancelled(true);
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§cSpieler Deaktivieren!")) {
e.getCurrentItem().getItemMeta().addEnchant(Enchantment.DURABILITY, 1, false);
for(Player all : Bukkit.getOnlinePlayers()) {
p.hidePlayer(all);
}
e.setCancelled(true);
}
} catch (Exception ex) {

}
}
}

@EventHandler
public void onDrop(PlayerDropItemEvent e) {
e.setCancelled(true);
}

}


Und alles andere Funktioniert, heißt andere Visible und Unvisible machen. Und Inventar öffnen und so geht auch.

This post has been edited 2 times, last edit by "FynniX" (Nov 1st 2018, 5:54pm)


Sebi_Zocer

User / Kunde

  • "Sebi_Zocer" is male

Posts: 229

Location: Privat

Occupation: Privat

  • Send private message

2

Friday, November 2nd 2018, 9:46pm

ItemStack is;
is.setItemFlag(ItemFlag.HideEnchantments)

Du musst speichern, was der Spieler ausgewählt hat und wenn die Items ins Inventar gesetzt werden das abfragen. Wenn das Item geklickt wird kannst du nachdem du die Auswahl gespeichert hast entweder die Items im Inventar setzen oder das Inv neu öffen.

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net