Ich programmiere derzeit an einem Server, und versuche
auch ein Inventar zu öffnen, klappt auch. Aber wie mache ich
dass man wenn man nur in dem bestimmten Inventar auf das Item klickt,
was bekommt und ich im normalen player Inventar? Weil immer
wenn ich dieses Item ausziehen will, bekommt ich das zeug grade nochmal.
Bin grade nicht am PC. Du kannst versuchen die Namen der Inventare miteinander zu vergleichen.
Ich versuche es mal zu beschreiben
Code:
Inventory inv //<- Das ist dein Custom inventory
@EventHandler
public void onInventoryClick(InventoryClickEvent event){
Inventory eventInv = e.getInventroy();
if(eventInv.getName().equals(inv.getName())){
//Hier das machen Wenn die Inventare gleich sind.
}
}
so ungefähr sollte es aussehen. Wie gesagt, ich bin nicht am pc. Also codefehler bitte nicht beachten.
Erstelle mit der Bukkit API ein neues Inventar
Speichere den Spieler, der via Befehl das Inventar geöffnet hat in z.b. einer Liste.
Wenn nun ein Klick (InventoryClickEvent war das glaube ich) passiert, prüfe, ob der Spieler in der Liste ist
mit dem InventoryCloseEvent prüfst du, ob der Spieler in der Liste ist. Wenn er es ist, entfernst du ihn wieder.
Beim InventoryClickEvent kannst du ja schauen, auf welchen Slot geklickt wurde über das Event. Werde die SlotID aus und gebe dem Spieler ein Item (oder was du auch immer machen wolltest)
Du kannst den inventaren Namen geben. Dann gibst du dem Inventar, das du selber erstellt hast, einen Namen. Dann kannst du im InventoryClickEvent das Inventar durch das das Event ausgelöst wurde abrufen. Dann kannst du von beiden Inventaren die Namen abrufen und sie vergleichen. Sind diese gleich, dann wird es wohl dein eigens erstelltes Inventar sein, falls nicht, nicht. LordSill's variante ist sicherer aber länger.
Nun prüfst du aber, ob der Spieler das Inventar "§cPvP-Tool" offen hat (welches zu keinem Zeitpunkt erstellt wurde)
Denn "§cPvP-Tool" ist der Anzeigename eines Items, aber nicht der des Inventars, weshalb du daher dort auch den Namen des Inventars nehmen solltest: (InventoryClickEvent)
Code:
if(e.getInventory().getName().equalsIgnoreCase(" PvP-Tool"))
{
//Der Spieler nutzt das "neue" Inventar
}
Innerhalb der {} setzt du dann den Code, der prüft, was angeklickt wurde im neuen Inventar (Welches aktuell 3x Glass enthält)
Dort kannst dann die SlotID prüfen und anschließend deine gewünschte Aktion ausführen, sofern der Spieler auf den richtigen Slot geklickt hat.
(verwende dazu am besten am ende der If Anweisung vom Inventar ein e.setCancelled(true); damit man sich das Item nicht aus dem Inventar klauen kann)
Bukkit Plugin, Virtuelles Inventar 04/13/2014 - Minecraft - 6 Replies Hallo, ich bin gerade dabei ein kleines Plugin zu schreiben, dass bei einem Rechtsklick auf einen Block ein Inventar öffnet.
Ich habe das Ganze in 2 Klassen aufgeteilt, übersichtshalber.
In der ersten Klasse habe ich jedoch ein Problem, und zwar beim anzeigen des Menüs.
Sieht jemand von euch den Fehler?
Wäre echt klasse.
package me.themrdomi.Spawn;
import java.awt.Menu;
Problem mit Inventar 04/06/2013 - Metin2 Private Server - 4 Replies Hey Leute,
ich habe ein Problem mit meinem Inventar. Wenn ich etwas droppe dann ist es nicht im Inventar. Erst wenn ich auf Seite II und dann wieder auf I dann ist das Item da. Und wenn ich etwas droppe und dann Offline gehe (während das Item nicht Sichtbar im Inventar ist) dann ist der Charakter kaputt, also der lade Balken hängt am ende und es sind komische Zahlen bei der Maus.
Screens:...
[Bukkit] Inventar speichern 03/31/2013 - Minecraft - 9 Replies Hii,
ich möchte bei meinem Plugin das Inventar speichern können und zu einem späteren Zeitpunkt wiederherstellen. Ich habe keine Ahnung wie ich das machen könnte.
Freue mich auf Antworten
Problem mit dem Inventar 02/05/2013 - Flyff Private Server - 8 Replies Hallo ich habe ein Problem, sobald ich mich einlogge und bei der Channel auswahl bin geht nichts mehr.Serverside bekomme ich ein Error weiß jedoch nicht was er beudeutet oder wodurch er hervorgerufen wird.
2013/ 2/ 3 23:26:03 SendPlayerList::Inventory : << IndexItem Milka, 2508
2013/ 2/ 3 23:26:03 Inventory =...