xTea_199 4 Opublikowano 2 maja 2017 Udostępnij Opublikowano 2 maja 2017 napiszę ktoś zablokowanie wyrzucania itemstacka x1? całość proszę podać w <code> Odnośnik do komentarza https://skript.pl/temat/18184-zablokowanie-dropu-itemstacka/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 xMarcinos 30 Opublikowano 27 maja 2017 Udostępnij Opublikowano 27 maja 2017 (edytowane) Jeżeli chodzi Ci o to, że na żadnym świecie nie może być danego przedmiotu w ilości jedenego, czy to wyrzuconego, czy innego, to takie coś powinno działać (nie testowałem, wklejasz to do onEnable()): Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){ public void run(){ for (World w : Bukkit.getWorlds()) { for (Entity e : w.getEntities()){ if (e instanceof EntityItem) { EntityItem ei = (EntityItem) e; if(ei.getItemStack().getItem() == Items.APPLE && ei.getItemStack().getCount() == 1){ e.remove(); } } } } } }, 1, 1); Jeżeli chodzi Ci o to, że gracz nie może wyrzucać danego przedmiotu (poprzez naciśnięie przycisku Q), to do onEnable() wklejasz Bukkit.getPluginManager().registerEvents(this, this); Co mówi Bukkitowi, że ma wykrywać klasę pluginu jako tzw. "Event Handler". W głównej klasie pluginu tworzysz także funkcję onDrop() z adnotacją @EventHandler, która będzie uruchamiana przy wyrzuceniu przedmiotów przez gracza. Powinna ona wyglądać tak: @EventHandler public void onDrop(PlayerDropItemEvent evt){ if(evt.getItem() == Items.APPLE){ evt.setCancelled(true); } } Nie wiem dlaczego funkcja ta nie działa na zasadzie ItemStacka, tylko samego Itemu, mnie to mocno zdziwiło (przecież można wyrzucać przedmioty z tagami nbt, ilością i innymi?!). Nie testowałem, ale powinno działać. Items.APPLE zamieniasz na przedmiot jaki chcesz np. Items.DIRT. Za pomyłki przepraszam, jeżeli takie są :-P... Edytowane 27 maja 2017 przez xMarcinos Odnośnik do komentarza https://skript.pl/temat/18184-zablokowanie-dropu-itemstacka/#findComment-127878 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
xTea_199 4
napiszę ktoś zablokowanie wyrzucania itemstacka x1?
całość proszę podać w <code>
Odnośnik do komentarza
https://skript.pl/temat/18184-zablokowanie-dropu-itemstacka/Udostępnij na innych stronach
1 odpowiedź na to pytanie
Rekomendowane odpowiedzi