Minecraft Java Plugin, Inventar move verbieten?
Also, ich möchte machen, dass man am Anfang ein Netherstern hat um das Team auszuwählen. Aber dieser Netherstar soll man nicht bewegen können. Wie kann ich das machen?
Thema: Minecraft Java Plugin
4 Antworten
Du musst einen Listener (onInventoryMove) erstellen, ihn in der Main Class deklarieren. Dann im Listener testen ob es das Item in diesem Inv ist etc und das Event canceln.
http://redditpublic.com/images/b/b2/Items_slot_number.png
mit getRawSlot() kriegst du vom Spieler alle Slots (SlotNr siehe Link)
Den kannst du clearen.
Falls du gar nicht in nem clickevent bist, und nur das inventar leeren willst, geht das über das PlayerInventory.
mit
getExtraContents()
bekommst du ein ItemStack[], der diese ganzen Slots beinhaltet. Entsprechend mit
setExtraContents(ItemStack[] items)
kannst du es setzen.
Klar, du könntest das InventoryClickEvent für den Spieler canceln. Evtl natürlich mit vorheriger Überprüfung, ob es sich auch um das richtige Inventar handelt und das angeklickte Item nicht null ist, denn sonst wird manchmal eine NullPointer geworfen, wenn du 'Nichts' anklickst im Inventar bzw. außerhalb der Slots klickst.
Die letzte Möglichkeit habe ich übrigens nie ausprobiert, also ohne Gewähr :D
Also p.getInventory().clear() funktioniert nicht ordentlich?
slots = actionbar?
Oder slots = actionbar + das 4*9 ‚eigentliche‘ Inventar?
Wo oben rechts?
Was genau willst du?
Wie willst du das machen?
Ich möchte machen, dass alles gelöscht wird. Wenn man nähmlich die Items in die Craftingleiste tut und dann cleart, werden diese Items nicht gelöscht.
kann man nicht machen, dass man nichts bewegen kann?