Sie sind nicht angemeldet.

  • Anmelden

Lieber Besucher, herzlich willkommen bei: Nitrado.net Prepaid Gameserver Community-Support. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

FynniX

User / Kunde

  • »FynniX« ist der Autor dieses Themas

Beiträge: 1

  • Nachricht senden

1

Donnerstag, 1. November 2018, 17:45

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.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »FynniX« (1. November 2018, 17:54)


Sebi_Zocer

User / Kunde

  • »Sebi_Zocer« ist männlich

Beiträge: 216

Wohnort: Privat

Beruf: Privat

  • Nachricht senden

2

Freitag, 2. November 2018, 21:46

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.