Wakal 23 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 Witam. Mam problem który próbuje rozwiązać już kilka godzin, mianowicie, chodzi o to że potrzebuje pobierać wartość z opisu przedmiotu. W opisie będzie takie coś: ItemStack itemToGet = new ItemStack(itemType);{ ItemMeta itemMeta = itemToGet.getItemMeta(); List<String> lore = new ArrayList<>(); lore.add(" "); lore.add(" "); lore.add(ChatColor.GREEN + " Dodatkowe punkty zycia: " + ChatColor.DARK_GREEN + healthToAdd); itemMeta.setLore(lore); lore.clear(); itemToGet.setItemMeta(itemMeta); } Próbowałem odczytywać to już takim czymś: @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(command.getName().equalsIgnoreCase("check")) { Player p = (Player) sender; List<String> lore = p.getInventory().getItemInMainHand().getItemMeta().getLore(); int hpToAdd; for(String lineOfLore : lore) { if(lineOfLore.contains("Dodatkowe punkty zycia: ")) { sender.sendMessage("Dziala."); return true; }else { sender.sendMessage("Nie dziala."); return true; } } } return false; } No ale cały czas wysyła że nie działa, nie wiem w czym problem, szukałem to już na kilku stronach. Proszę o pomoc, z góry dzięki. Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 GRIERIOR 39 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 Może zamiast pobrać do zmiennej z opisu, daj do opisu zmienną? Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210108 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Queito 104 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 9 minut temu, _GRIERIOR_ napisał: Może zamiast pobrać do zmiennej z opisu, daj do opisu zmienną? if(lineOfLore.contains("Dodatkowe punkty zycia: ")) { bo moze po spacji jest dalej tekst Wakal 1 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210112 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Wakal 23 Opublikowano 17 marca 2019 Autor Udostępnij Opublikowano 17 marca 2019 24 minuty temu, Queito napisał: if(lineOfLore.contains("Dodatkowe punkty zycia: ")) { bo moze po spacji jest dalej tekst Faktycznie, jest, ale ja chce sprawdzać czy przechowuje mniej więcej to, a nie dokładnie to. Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210115 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Wakal 23 Opublikowano 17 marca 2019 Autor Udostępnij Opublikowano 17 marca 2019 35 minut temu, _GRIERIOR_ napisał: Może zamiast pobrać do zmiennej z opisu, daj do opisu zmienną? To było by bez sensu, chce zrobić coś takiego jak na serwerach rpg. Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210116 Udostępnij na innych stronach Więcej opcji udostępniania...
0 LloydPL 436 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 jak masz kolorowy tekst to wpisz kolorowy (ChatColor) i używaj .startsWith("str") do tego Wakal 1 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210119 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Queito 104 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 to robisz sobie obiekt np. Item, potem cos w stylu ItemManager gdzie przechowujesz wszystkie obiekty "Item", i potem po nazwie itemu gettujesz sobie obiekt i z niej zwracasz np. dodatkowy damage itp. Wakal 1 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210120 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Wakal 23 Opublikowano 17 marca 2019 Autor Udostępnij Opublikowano 17 marca 2019 7 minut temu, Queito napisał: to robisz sobie obiekt np. Item, potem cos w stylu ItemManager gdzie przechowujesz wszystkie obiekty "Item", i potem po nazwie itemu gettujesz sobie obiekt i z niej zwracasz np. dodatkowy damage itp. To będzie mało wydajne, przechowywanie setek a nawet tysięcy przedmiotów zamiast po prostu czytać to co mają w opisie. Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210121 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Queito 104 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 Czy ja wiem czy mało wydajne, zależy od procka i ramu Wakal 1 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210122 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Queito 104 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 A jak tak chcesz zrobić to: zforeachuj każdą linjke z loru, splituj np. znakiem ':' i wtedy masz 2 stringi "co" - wartosc jako string i sprawdzaj jezeli string[0].equalsignore# = hp to wtedy bierz wartosc i elo Wakal 1 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210123 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 od czego jest cos takiego jak startWith Wakal 1 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210130 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 719 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 Bo masz w pętli return, czyli po pierwszej linijce wykonywanie metody, i tym samym pętli, się zatrzymuje. LloydPL, Wakal i Peridot 3 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210132 Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 17 marca 2019 Udostępnij Opublikowano 17 marca 2019 ^ i nie zagłębiam się jakoś w atrybuty, ale nie można nimi tego zrobić? lub do nbt po prostu dodac, o wiele latwiej Ixidi i Wakal 2 Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210134 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Wakal 23 Opublikowano 18 marca 2019 Autor Udostępnij Opublikowano 18 marca 2019 Dobrze, tak więc zrobiłem, i teraz wszystko działa poprawnie, przeszukuje tą liste po kolei, i w razie problemu nie zatrzymuje się, tylko idzie dalej, jak napotka na dany tekst w opisie, to robi coś, i się zatrzymuje. if(command.getName().equalsIgnoreCase("check")) { Player p = (Player) sender; List<String> lore = p.getInventory().getItemInMainHand().getItemMeta().getLore(); for(String line : lore) { if(line.contains(ChatColor.GREEN + " Dodatkowe punkty zycia: ")) { String hpAdd = line.substring((ChatColor.GREEN + " Dodatkowe punkty zycia: " + ChatColor.DARK_GREEN).length()).trim(); int hpToAdd; try { hpToAdd = Integer.parseInt(hpAdd); }catch (Exception e) { return true; } sender.sendMessage(hpAdd); return true; }else { sender.sendMessage("Nie dziala."); } } return true; } return false; } } Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210198 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 719 Opublikowano 18 marca 2019 Udostępnij Opublikowano 18 marca 2019 Problem został rozwiązany. Odnośnik do komentarza https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/#findComment-210213 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Wakal 23
Witam. Mam problem który próbuje rozwiązać już kilka godzin, mianowicie, chodzi o to że potrzebuje pobierać wartość z opisu przedmiotu.
W opisie będzie takie coś:
Próbowałem odczytywać to już takim czymś:
No ale cały czas wysyła że nie działa, nie wiem w czym problem, szukałem to już na kilku stronach.
Proszę o pomoc, z góry dzięki.
Odnośnik do komentarza
https://skript.pl/temat/32325-pobieranie-warto%C5%9Bci-z-opisu/Udostępnij na innych stronach
14 odpowiedzi na to pytanie
Rekomendowane odpowiedzi