Skocz do zawartości
  • 0

Problem z otwieraniem kowadła przez komendę


ihn04849

Pytanie

Siema, zna ktoś jakiś dobry i działający sposób na otwieranie kowadła poprzez np. komendę?

Chodzi mi o takie coś: wpisze sobie /kowadło i otworzy mi się kowadło. Zrobiłem:

Player player = (Player) sender;
Inventory inventory = Bukkit.createInventory(player, InventoryType.ANVIL);
player.openInventory(inventory);

i działa, otwiera się kowadło. Mogę naprawiać w nim itemy, ale nie da się zmienić ich nazwy - zabiera lvl, a item znika. Jakieś pomysły? :P

Odnośnik do komentarza
Udostępnij na innych stronach

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0

No jak tak nie działa, to niestety z tego co wiem są tylko trzy sposoby: (i nie jestem pewien czy pierwszy działa poprawnie, dawno tego nie robiłem :D tam gdzie pracowałem to najczęściej używało się metody trzeciej, ale to dość sporo kodu więc nie znajdę i nie napiszę tego tutaj z palca, na pewno są jakiegoś gotowe biblioteki na spigotmc  czy coś.)

1. Stworzyć prawdziwe kowadło i ustawić je jako holdera inventory: 

        someBlock.setType(Material.ANVIL);
        Inventory inventory = Bukkit.createInventory((InventoryHolder) someBlock.getState(), InventoryType.ANVIL);

someBlock to jakiś Block który sobie pobierasz, wydaje mi się że to też musi być block blisko gracza, ale możliwe że wystarczy że to jakiś block na załadowanym chunku - czyli np na spawnie. Ale nie zdziwię się wtedy jeśli przy zamykaniu EQ z itemami w środku wypadaną one obok kowadła zamiast gracza :D

2. Pakiety i tworzenie fałszywego bloku kowadła i fałszywego inventory kowadła i symulowanie każdej akcji ręcznie.

3. Kod z NMS by wymusić stworzenie fałszywego obiektu kowadła.

Edytowane przez GotoFinal
Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...