• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Brauche Hilfe für einem /enderchest Plugin

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
200
Minecraft
Blura_
Hey,
Ich brauche Hilfe um einen /enderchest plugin zu programmieren, denn ich will das man ohne einen permission nichts von anderen ec rausnehmen kann.
Ich habe es mit einem arraylist versucht aber ich weiß nicht wie ich jemanden aus der Arraylist removt nachdem er den ec schließt.
Es wäre nett wenn ihr mir eine methode schreiben würdet das ich jemanden vom arraylist remove kann wenn er dein Enderchest schließt.
Vielen Dank im Voraus!
 

Avankziar

Schafhirte
Registriert
12 Februar 2018
Beiträge
135
Alter
31
Diamanten
224
Minecraft
Avankziar
Code:
    @EventHandler
    public void onEnderChestClose(InventoryCloseEvent event)
    {
        if(event.getInventory().getType() == InventoryType.ENDER_CHEST)
        {
            list.remove(player);
        }
        return;
    }

Du überprüfst einfach im InventoryCloseEvent, ob das Inventar eine Enderchest ist, dann removest du den Player.
Könnte sein, dass du eventuell noch vorher abfragen muss, ob das Inventar != null ist. Musst du aber ausprobieren.
 

petomka

Redstoneengineer
Registriert
8 Oktober 2012
Beiträge
41
Alter
25
Diamanten
272
InventoryEvent#getInventory ist als NotNull annotiert, darauf darf man sich ruhig verlassen. Ein Event, dass ein Inventar geschlossen wurde, ohne Inventar ist auch nicht wirklich sinnvoll, oder? ;)

Vielleicht magst du dir (@heras) auch mal anschauen, was ein Set ist, denn ich vermute, du möchtest in deiner Liste keine doppelten Einträge - eine wesentliche Eigenschaft eines Sets. Als Implementierung kannst du das HashSet verwenden.

Java:
List list = ...;
if(list.contains(...)) {
    return;
}
list.add(...);
//restliche aktionen

Set set = ...;
if(!set.add(...)) {
    return;
}
//restliche aktionen
 

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
200
Minecraft
Blura_
Code:
    @EventHandler
    public void onEnderChestClose(InventoryCloseEvent event)
    {
        if(event.getInventory().getType() == InventoryType.ENDER_CHEST)
        {
            list.remove(player);
        }
        return;
    }

Du überprüfst einfach im InventoryCloseEvent, ob das Inventar eine Enderchest ist, dann removest du den Player.
Könnte sein, dass du eventuell noch vorher abfragen muss, ob das Inventar != null ist. Musst du aber ausprobieren.
Danke! Das hat mir sehr geholfen...
 
Oben