Sie sind nicht angemeldet.

  • Anmelden

Nico__2801

User / Kunde

  • »Nico__2801« ist der Autor dieses Themas

Beiträge: 63

  • Nachricht senden

1

Donnerstag, 18. Oktober 2018, 18:10

Doppeltruhe beim BlockPlaceEvent

Hi,

ich programmiere gerade ein Plugin für Truhensicherungen. Dazu benötige ich beim BlockPlaceEvent Auskunft darüber, ob eine gesetzte Truhe zu einer Doppeltruhe wird und möchte dann die Location der anderen Hälfte erhalten.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
    @EventHandler
    public void PlaceEvent(BlockPlaceEvent e) {
        Block block = e.getBlockPlaced();          
        if (block.getState() instanceof Chest) {
            Chest chest = (Chest) block.getState();
            InventoryHolder ih = chest.getInventory().getHolder();
            if (ih instanceof DoubleChest){
                DoubleChest dc = (DoubleChest) ih;
                p.sendMessage("Doppeltruhe");
            }
        }
    }


Diese Code funktioniert leider nicht, gibt keine Fehlermeldung aber die Nachricht wird nicht an den Spieler gesendet.

Wenn ich diesen Code jedoch für das PlayerInteractEvent verwende ( getBlockPlaced() => getClickedBlock() ) funktioniert das.

Meine Frage: Kann es sein, dass beim BlockPlaceEvent noch nicht feststeht, ob eine Truhe zur Doppeltruhe wird? Und falls doch, wie kann ich das herausfinden?

MedPlex

Nitrado Mitarbeiter

  • »MedPlex« ist männlich

Beiträge: 86

Wohnort: Karlsruhe

Beruf: Customer Care Agent Nitrado

  • Nachricht senden

2

Dienstag, 23. Oktober 2018, 14:45

In der Nacht fällt der Boden von den Wänden :whistling:

Du brauchst nen Server? Nitrado.net!

Sebi_Zocer

User / Kunde

  • »Sebi_Zocer« ist männlich

Beiträge: 212

Wohnort: Privat

Beruf: Privat

  • Nachricht senden

3

Dienstag, 23. Oktober 2018, 16:41

Bei einem Event ist es so:
- Spieler sendet Packet an Server
- Server erhält Packet und gibt es an Plugins
- Registrierte Listener canceln ggf. das Event
- Wenn nicht gecancelt wird -> das Packet freigegeben
- Server sendet freigegebenes Packet an alle Spieler weiter

Erst dann wird die Chest ggf. zu einer DoubleChest.

Ich würde nach 1 Tick die DoubleChest abfragen. Vlt hilft es ja...