JaTuTylkoYT 0 Opublikowano 4 grudnia 2020 Udostępnij Opublikowano 4 grudnia 2020 Siema, jestem w trakcie pisania pluginu na /efekty i mam problem. Mianowicie przy kliknieciu na item w gui zabiera 48 blokow emeraldow, a nie 32 tak jak jest napisane w kodzie. Ponizej kod z InventoryClickEvent: package whitehc.efekty.events; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; public class InventoryClick implements Listener { ItemStack blokiemejedenszesc = new ItemStack(Material.EMERALD_BLOCK, 16); ItemStack blokiemetrzydwa = new ItemStack(Material.EMERALD_BLOCK, 32); @EventHandler public void onInventoryClick(InventoryClickEvent e) { if(!ChatColor.stripColor(e.getInventory().getName()).equalsIgnoreCase("Efekty")) return; Player p = (Player) e.getWhoClicked(); if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR || !e.getCurrentItem().hasItemMeta()) { p.closeInventory(); return; } switch(e.getCurrentItem().getType()) { case SUGAR: if(p.getInventory().contains(Material.EMERALD_BLOCK, 16)) { p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 6000, 0)); //20 = 1 sek | 1200 = 60 sek p.getInventory().removeItem(blokiemejedenszesc); p.closeInventory(); } else { p.closeInventory(); } case EMERALD: if(p.getInventory().contains(Material.EMERALD_BLOCK, 32)) { p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 6000, 1)); //20 = 1 sek | 1200 = 60 sek p.getInventory().removeItem(blokiemetrzydwa); p.closeInventory(); } else { p.closeInventory(); } break; default: p.closeInventory(); break; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 szymonjjay 29 Opublikowano 4 grudnia 2020 Udostępnij Opublikowano 4 grudnia 2020 Na końcu case'a z SUGAR brakuje break. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 JaTuTylkoYT 0 Opublikowano 4 grudnia 2020 Autor Udostępnij Opublikowano 4 grudnia 2020 Godzinę temu, szymonjjay napisał: Na końcu case'a z SUGAR brakuje break. zrobilem tak i za kazdym razem zabiera 16 blokow emeraldow Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 JaTuTylkoYT 0 Opublikowano 5 grudnia 2020 Autor Udostępnij Opublikowano 5 grudnia 2020 21 godzin temu, JaTuTylkoYT napisał: zrobilem tak i za kazdym razem zabiera 16 blokow emeraldow Znalazlem zrodlo problemu ale w gui jest emerald, a chcialbym zeby byl cukier, tylko ze jeden cukier juz jest. wie ktos jak to zrobic? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Usunięty#29721 19 Opublikowano 5 grudnia 2020 Udostępnij Opublikowano 5 grudnia 2020 9 minut temu, JaTuTylkoYT napisał: Znalazlem zrodlo problemu ale w gui jest emerald, a chcialbym zeby byl cukier, tylko ze jeden cukier juz jest. wie ktos jak to zrobic? Czy mógłbyś bardziej opisać swój problem i co dokładnie nie działa? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 JaTuTylkoYT 0 Opublikowano 5 grudnia 2020 Autor Udostępnij Opublikowano 5 grudnia 2020 Teraz, nof napisał: Czy mógłbyś bardziej opisać swój problem i co dokładnie nie działa? Ogolem to wszystko dziala jak powinno ale chce zeby w gui byly lacznie 3 itemy i wszystkie to cukier, kazdy z nich to efekt (speed 1, 2 i 3) no i w gui nie wiem jak zrobic zeby byly same cukry, bo nie moge zrobic takiego samego case'a wiec mam case emerald i case sugar i w gui jest cukier i emerald Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Usunięty#29721 19 Opublikowano 5 grudnia 2020 Udostępnij Opublikowano 5 grudnia 2020 Teraz, JaTuTylkoYT napisał: Ogolem to wszystko dziala jak powinno ale chce zeby w gui byly lacznie 3 itemy i wszystkie to cukier, kazdy z nich to efekt (speed 1, 2 i 3) no i w gui nie wiem jak zrobic zeby byly same cukry, bo nie moge zrobic takiego samego case'a wiec mam case emerald i case sugar i w gui jest cukier i emerald Możesz sprawdzać czy kliknięty item ma nazwę 'SPEED 1' czy 'SPEED 2', lub zamiast sprawdzania itemu sprawdzać slot. switch (e.getSlot()) { } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 536 Opublikowano 5 grudnia 2020 Udostępnij Opublikowano 5 grudnia 2020 Godzinę temu, JaTuTylkoYT napisał: Ogolem to wszystko dziala jak powinno ale chce zeby w gui byly lacznie 3 itemy i wszystkie to cukier, kazdy z nich to efekt (speed 1, 2 i 3) no i w gui nie wiem jak zrobic zeby byly same cukry, bo nie moge zrobic takiego samego case'a wiec mam case emerald i case sugar i w gui jest cukier i emerald sprawdzaj po slocie lub nazwie. ItemStack is = e.getCurrentItem(); if (is.getType() != Material.SUGAR) return; if (is.getDisplayName("cos tam")) { /no i robisz } \Na sloty if (e.getSlot() == 10) { /no i cos tam } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
JaTuTylkoYT 0
Siema, jestem w trakcie pisania pluginu na /efekty i mam problem. Mianowicie przy kliknieciu na item w gui zabiera 48 blokow emeraldow, a nie 32 tak jak jest napisane w kodzie. Ponizej kod z InventoryClickEvent:
Odnośnik do komentarza
Udostępnij na innych stronach
7 odpowiedzi na to pytanie
Rekomendowane odpowiedzi