Virosel 1 Opublikowano 15 czerwca 2020 Udostępnij Opublikowano 15 czerwca 2020 (edytowane) Cześć, Chciałem zapytać w jaki sposób mogę wyciągnąć z configu wiele ItemStack'ów, np.: "Tytuł" listy, to slot, a co do reszty łatwo się domyślić. Z góry dzięki za pomoc. Edytowane 15 lipca 2020 przez Wojciu Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 public static Map<ItemStack, Integer> items = new HashMap<>(); public static void loadConfig(){ int i = 0; for (final String a : Main.getInst().getConfig().getConfigurationSection("Items.Sell").getKeys(false)) { final String path = "Items.Sell." + a; final ItemStack item = new ItemStack(Material.getMaterial(Main.getInst().getConfig().getString(path + ".material"))); item.setAmount(Main.getInst().getConfig().getInt(path + ".amount")); ItemMeta met = item.getItemMeta(); met.setDisplayName(Utils.fixColor(Main.getInst().getConfig().getString(path + ".name"))); List<String> lore = Main.getInst().getConfig().getStringList(path + ".lore") .stream() .map(s -> ChatColor.translateAlternateColorCodes('&', s).replace("<<", "«").replace(">>", "»")) .collect(Collectors.toList()); met.setLore(lore); item.setItemMeta(met); int price = Main.getInst().getConfig().getInt(path+".price"); Map<Enchantment, Integer> map = new HashMap<>(); for (String s : Main.getInst().getConfig().getStringList(path + ".enchantments")) { Enchantment ench = Enchantment.getByName(s.split(":")[0].toUpperCase()); if (ench == null) continue; int level = Integer.parseInt(s.split(":")[1]); map.put(ench, level); } item.addUnsafeEnchantments(map); items.put(item, i); i++; } } Tu jest metoda loadConfig Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249928 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 10 minut temu, Virosel napisał: Stworzyłem mapę <ItemStack, Integer> - Integer to slot. I teraz nasuwa się pytanie, w jaki sposób dodać to do inventory. (nie pracowałem wcześniej z mapami, więc nie wiem jak to działa). czemu integer to slot Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249930 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 (edytowane) 5 minut temu, kerpson napisał: czemu integer to slot W jakiej innej zmiennej to zrobić? Niby jest zmienna slot, ale nie wiem jak działa Edytowane 17 czerwca 2020 przez Virosel Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249931 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 3 minuty temu, Virosel napisał: W jakiej innej zmiennej to zrobić? dalej chcesz osiągnąć efekt ItemStack, cena czy coś jeszcze? Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249932 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 Teraz, kerpson napisał: dalej chcesz osiągnąć efekt ItemStack, cena czy coś jeszcze? Tak, ale nie przy ładowaniu przedmiotów Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249933 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 4 minuty temu, Virosel napisał: Tak, ale nie przy ładowaniu przedmiotów wytłumacz dokładniej, bo się pogubiłem (jestem po treningu więc wolniej ogarniam, sory) XD Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249934 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 Teraz, kerpson napisał: wytłumacz dokładniej, bo się pogubiłem (jestem po treningu więc wolniej ogarniam, sory) XD Więc tak, Przy ładowaniu przedmiotów z configu chcę załadować tylko przedmioty(cenę wyciągam w innym miejscu). Generalnie, cena działa. Chodzi mi o metodę, która wrzuciłbym itemki z mapy do gui Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249935 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 (edytowane) 6 minut temu, Virosel napisał: Więc tak, Przy ładowaniu przedmiotów z configu chcę załadować tylko przedmioty(cenę wyciągam w innym miejscu). Generalnie, cena działa. Chodzi mi o metodę, która wrzuciłbym itemki z mapy do gui możesz mieć tą mapkę dziku którą ci pokazałem <ItemStack, Integer> (przedmiot cena) a przy gui zrobić tak: Inventory inv = Bukkit.createInventory(null, *, *); for (Map.Entry<ItemStack, Integer> entry : tutaj_mapka.entrySet()) { ItemStack is = entry.getKey(); #przedmiot int price = entry.getValue(); #cena inv.addItem(..); } Pobiera ci wszystkie przedmioty wraz z ich cenami Edytowane 17 czerwca 2020 przez kerpson Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249936 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 35 minut temu, kerpson napisał: możesz mieć tą mapkę dziku którą ci pokazałem <ItemStack, Integer> (przedmiot cena) a przy gui zrobić tak: Inventory inv = Bukkit.createInventory(null, *, *); for (Map.Entry<ItemStack, Integer> map : tutaj_mapka.entrySet()) { ItemStack is = map.getKey(); #przedmiot int price = map.getValue(); #cena inv.addItem(..); } Pobiera ci wszystkie przedmioty wraz z ich cenami Itemki się dodają, ale podczas sprzedaży wyświetla się komunikat o braku wystarczającej ilości przedmiotów Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249939 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 4 minuty temu, Virosel napisał: Itemki się dodają, ale podczas sprzedaży wyświetla się komunikat o braku wystarczającej ilości przedmiotów pokaż tej urywek kodu gdzie się sprzedaje Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249940 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 Teraz, kerpson napisał: pokaż tej urywek kodu gdzie się sprzedaje if (e.getCurrentItem().getItemMeta().getDisplayName() != null) { ItemStack is = e.getCurrentItem(); ItemStack remove = new ItemStack(is.getType(), 1, is.getDurability()); if (!ItemManager.items.containsKey(is)) { } int amount = is.getAmount(); if(p.getInventory().containsAtLeast(is, is.getAmount())){ CoinsManager.addMoney(p, price); String msg = String.join("\n", Main.getInst().getConfig().getStringList("sellSuccess")); msg = msg.replace("{ITEM}", is.getType().toString()); msg = msg.replace("{AMOUNT}", String.valueOf(amount)); msg = msg.replace("{MONEY}", String.valueOf(price)); p.getInventory().removeItem(is); p.sendMessage(Utils.fixColor(msg)); }else{ p.closeInventory(); Utils.sendTitle(p, Utils.fixColor(Main.getInst().getConfig().getString("titles.tag"))); Utils.sendSubTitle(p, Utils.fixColor(Main.getInst().getConfig().getString("titles.notEnounghtItems"))); } e.setCancelled(true); Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249941 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 if(p.getInventory().containsAtLeast(remove, is.getAmount())){ CoinsManager.addMoney(p, price); String msg = String.join("\n", Main.getInst().getConfig().getStringList("sellSuccess")); msg = msg.replace("{ITEM}", is.getType().toString()); msg = msg.replace("{AMOUNT}", String.valueOf(amount)); msg = msg.replace("{MONEY}", String.valueOf(price)); p.getInventory().removeItem(remove); p.sendMessage(Utils.fixColor(msg)); poprawione Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249943 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 2 minuty temu, kerpson napisał: if(p.getInventory().containsAtLeast(remove, is.getAmount())){ CoinsManager.addMoney(p, price); String msg = String.join("\n", Main.getInst().getConfig().getStringList("sellSuccess")); msg = msg.replace("{ITEM}", is.getType().toString()); msg = msg.replace("{AMOUNT}", String.valueOf(amount)); msg = msg.replace("{MONEY}", String.valueOf(price)); p.getInventory().removeItem(remove); p.sendMessage(Utils.fixColor(msg)); poprawione Sprzedaje, ale tylko po jednym Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249945 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 Teraz, Virosel napisał: Sprzedaje, ale tylko po jednym ItemStack remove = new ItemStack(is.getType(), 1, is.getDurability()); może zmienić to '1' na is.getAmount? Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249946 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 4 minuty temu, Virosel napisał: Sprzedaje, ale tylko po jednym ItemStack remove = new ItemStack(is.getType(), is.getAmount(), is.getDurability()); Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249947 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 2 minuty temu, kerpson napisał: ItemStack remove = new ItemStack(is.getType(), is.getAmount(), is.getDurability()); Ok, działa, teraz trzeba zrobić jeszcze kupno, ale raczej sobie z tym poradzę, ewentualnie będę pytał Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249949 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 3 minuty temu, Virosel napisał: Ok, działa, teraz trzeba zrobić jeszcze kupno, ale raczej sobie z tym poradzę, ewentualnie będę pytał oke Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249950 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 (edytowane) 8 minut temu, kerpson napisał: oke No i błąd... Wszystko było ok, póki nie postanowiłem sprawdzić enchantów. XD Treść: Cannot load plugins\vShop\config.yml org.bukkit.configuration.InvalidConfigurationException: while scanning for the next token found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation) in 'string', line 71, column 1: - 'durability:3' ^ at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:226) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:169) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:180) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:188) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:162) [spigot.jar:git-Spigot-db6de12-18fbb24] at pl.viroz.shop.Main.onEnable(Main.java:26) [vShop2-1.0.jar:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_231] Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation) in 'string', line 71, column 1: - 'durability:3' ^ at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:420) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:132) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:450) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.yaml.snakeyaml.Yaml.load(Yaml.java:369) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55) ~[spigot.jar:git-Spigot-db6de12-18fbb24] Sorry za wysłanie 2 błędów Edytowane 17 czerwca 2020 przez Virosel Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249955 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 17 czerwca 2020 Udostępnij Opublikowano 17 czerwca 2020 pokaż jak wygląda config.yml Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249956 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Virosel 1 Opublikowano 17 czerwca 2020 Autor Udostępnij Opublikowano 17 czerwca 2020 (edytowane) W dniu 17.06.2020 o 16:16, kerpson napisał: pokaż jak wygląda config.yml https://prnt.sc/t1h7mz Edytowane 15 lipca 2020 przez Wojciu Odnośnik do komentarza https://skript.pl/temat/39888-przedmioty-z-configu/#findComment-249957 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Virosel 1
Cześć,
Chciałem zapytać w jaki sposób mogę wyciągnąć z configu wiele ItemStack'ów, np.:
"Tytuł" listy, to slot, a co do reszty łatwo się domyślić. Z góry dzięki za pomoc.
Edytowane przez WojciuOdnośnik do komentarza
https://skript.pl/temat/39888-przedmioty-z-configu/Udostępnij na innych stronach
Top użytkownicy dla tego pytania
44
40
Popularne dni
17 Cze
47
25 Cze
16
16 Cze
10
15 Cze
8
Top użytkownicy dla tego pytania
Virosel 44 odpowiedzi
kerpson 40 odpowiedzi
Popularne dni
17 Cze 2020
47 odpowiedzi
25 Cze 2020
16 odpowiedzi
16 Cze 2020
10 odpowiedzi
15 Cze 2020
8 odpowiedzi
Popularne posty
kerpson
moj fail, sorka xD
83 odpowiedzi na to pytanie
Rekomendowane odpowiedzi