Ever 20 Opublikowano 30 listopada 2018 Udostępnij Opublikowano 30 listopada 2018 (edytowane) Siema, zrobiłem kod na zapisywanie/odczytywanie hashmapy z configu. Wszystko działa gdy tylko jedna osoba jest w configu Problem zaczyna sie gdy sa np. 2osoby. Wtedy nie dziala plugin wgl public void loadLvL() { lvl = new HashMap<String, Integer>(); if(plugin.getConfig().getConfigurationSection("lvl") != null ) { Set<String> set = plugin.getConfig().getConfigurationSection("lvl").getKeys(true); for(String credit : set) { int value = plugin.getConfig().getConfigurationSection("lvl").getInt(credit); lvl.put(credit, value); set.clear(); } } } public void saveLvL() { for(String level : lvl.keySet()) { int value = lvl.get(level); plugin.getConfig().set("lvl." + level, value); } plugin.saveConfig(); } } I przy onEnable loadLvl, a przy onDisable saveLvL Edytowane 30 listopada 2018 przez Ever Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 30 listopada 2018 Udostępnij Opublikowano 30 listopada 2018 (edytowane) po co ten set.clear() ? a tak to: public void saveLvL() { for(String level : lvl.keySet()) { int value = lvl.get(level); plugin.getConfig().set("lvl." + level, value); } plugin.saveConfig(); } mozesz zamienic na public void saveLvl() { lvl.forEach((uuid, level) -> config.set("lvl." + uuid, level)); plugin.saveConfig(); } chociaz w sumie nw czym jest credit i ogolnie ten kod wyglada jakos brzydko=( juz nawet nie wspomne o tym ze takie zapisywanie do yaml jest bez sensu, tymabrdziej ze czym plik bedzie wiekszy tym dluzej bedzie sie go ladowalo itd. sam sie o tym kiedys przekonalem jak takie coinsy itd trzymalem w jednym pliku, plik byl ogromny i ladowal sie wiecej niz 10 minut, a poand 100 graczy czekało na wejscie na serwer przeciez teraz jest tyle fajnych baz danych=( Edytowane 30 listopada 2018 przez yooniks Ever 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ever 20 Opublikowano 30 listopada 2018 Autor Udostępnij Opublikowano 30 listopada 2018 1 minutę temu, yooniks napisał: po co ten set.clear() ? a tak to: public void saveLvL() { for(String level : lvl.keySet()) { int value = lvl.get(level); plugin.getConfig().set("lvl." + level, value); } plugin.saveConfig(); } mozesz zamienic na public void saveLvl() { lvl.forEach((uuid, level) -> config.set("lvl." + uuid, level)); plugin.saveConfig(); } chociaz w sumie nw czym jest credit i ogolnie ten kod wyglada jakos brzydko=( zaraz zobacze, a kod wiem ze jakis super nie jest, ale to tylko odlamek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ever 20 Opublikowano 30 listopada 2018 Autor Udostępnij Opublikowano 30 listopada 2018 Nwm co sie stalo, ale po usunieciu set.clear zaczelo dzialac, dzieki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 717 Opublikowano 30 listopada 2018 Udostępnij Opublikowano 30 listopada 2018 Problem został rozwiązany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Ever 20
Siema, zrobiłem kod na zapisywanie/odczytywanie hashmapy z configu.
Wszystko działa gdy tylko jedna osoba jest w configu
Problem zaczyna sie gdy sa np. 2osoby. Wtedy nie dziala plugin wgl
I przy onEnable loadLvl, a przy onDisable saveLvL
Edytowane przez EverOdnośnik do komentarza
Udostępnij na innych stronach
4 odpowiedzi na to pytanie
Rekomendowane odpowiedzi