DemoN 15 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 (edytowane) Zestawy Opis: Plugin służy do zestawów na serwerze które mają za zadanie ułatwić graczom danego serwera rozgrywkę dając im gotowe przedmioty prosto do ekwipunku. Plugin posiada opcję LPM oraz PPM tzn. Po kliknięciu lewym przyciskiem myszy możemy użyć zestawu a po kliknięciu prawym przyciskiem myszy możemy sprawdzić zawartość zestawu. Aktualnie w pluginie jest zapisywanie czasu do HashMapy, więc po zrestartowaniu serwera gracz może użyć zestawu bez odczekiwania reszty czasu, w kolejnych wersjach postaram się to zmienić. Aby mieć dostęp do każdego z zestawów trzeba nadać graczowi permisje które będą podane poniżej. Wersja gry: 1.8 Dostępne komendy/permisje: /zestawy, /kit lub /kits. zestawy.gracz - dostęp do zestawu gracz, zestawy.vip - dostęp do zestawu vip, zestawy.premium - dostęp do zestawu premium. Aktualnie plugin nie ma konfiguracji, lecz z każdą aktualizacją plugin będzie coraz to bardziej możliwy do skonfigurowania! Skan: https://www.virustotal.com/#/file/599bca321fbebe67c09f67a4697fa229e03d0f70d497909ae149dd1e1864c9cd/detection Download: http://hostuje.net/file.php?id=efe870ac4b519d4aa77dd94aa9d9b67a Screeny: https://zapodaj.net/235d1086fa612.png.html https://zapodaj.net/aca710c87f088.png.html https://zapodaj.net/48825d3870e31.png.html https://zapodaj.net/23cd997243e65.png.html https://zapodaj.net/9de949ba5bce3.png.html https://zapodaj.net/fd884acfcba54.png.html https://zapodaj.net/9b5372d867b5a.png.html https://zapodaj.net/615463a155e1c.png.html Proszę wziąć pod uwagę że plugin waży zaledwie 13kb! Edytowane 7 lutego 2019 przez DemoN Zmiana wersji kerpson i Misio12320 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Queito 104 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 Dodaj githuba DemoN 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LloydPL 436 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 (edytowane) z kodu z dekompilatora poradze ci żebyś nie zamieniał & na § i nie tworzył za każdym razem itemstacków tylko najlepiej przy starcie i je gdzieś trzymał i nw czy z tym zadziała na 1.12 (spoiler: nie zadziała) import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.IChatBaseComponent; import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer; import net.minecraft.server.v1_8_R3.PacketPlayOutChat; import net.minecraft.server.v1_8_R3.PacketPlayOutTitle; import net.minecraft.server.v1_8_R3.PacketPlayOutTitle.EnumTitleAction; import net.minecraft.server.v1_8_R3.PlayerConnection; i też nie widziałem żadnego cfg zestawów i wgl niczego, tylko sforsowane przez kod kity ;v @DemoN ja mam z dekompilatora bo src nie widze... Edytowane 7 lutego 2019 przez LloydPL DemoN 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kerpson 549 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 Gratulacje ! Brak jakiegokolwiek zapisu, nawet flat. Czyli po każdym reloadzie/restarcie serwera można brać kity od nowa private final Map<String, Long> GRACZ; private final Map<String, Long> VIP; private final Map<String, Long> PREMIUM; Zamiast tego można by było użyć prostego usera, dodatkowo ja polecam zapis UUID public static boolean canUse(long saveTime, long time) { return System.currentTimeMillis() - saveTime >= time; } Po co taka metoda ? Przecież można porównać longa w sposób tradycyjny. if(GRACZ.get(p.getDisplayName()) > System.currentTimeMillis()){ ItemStack koks = new ItemStack(Material.GOLDEN_APPLE, 10, (short)1); ItemStack kilof = new ItemStack(Material.DIAMOND_PICKAXE); ItemMeta kilofmeta = kilof.getItemMeta(); kilofmeta.addEnchant(Enchantment.DIG_SPEED, 5, true); kilofmeta.addEnchant(Enchantment.DURABILITY, 3, true); kilofmeta.addEnchant(Enchantment.LOOT_BONUS_BLOCKS, 3, true); kilof.setItemMeta(kilofmeta); ItemStack miecz = new ItemStack(Material.DIAMOND_SWORD); ItemMeta mieczmeta = miecz.getItemMeta(); mieczmeta.addEnchant(Enchantment.DAMAGE_ALL, 5, true); mieczmeta.addEnchant(Enchantment.FIRE_ASPECT, 2, true); mieczmeta.addEnchant(Enchantment.DURABILITY, 3, true); miecz.setItemMeta(mieczmeta); ItemStack miecz2 = new ItemStack(Material.DIAMOND_SWORD); ItemMeta miecz2meta = miecz2.getItemMeta(); miecz2meta.addEnchant(Enchantment.KNOCKBACK, 2, true); miecz2.setItemMeta(miecz2meta); ItemStack buty = new ItemStack(Material.DIAMOND_BOOTS); ItemMeta butymeta = buty.getItemMeta(); butymeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); butymeta.addEnchant(Enchantment.DURABILITY, 3, true); buty.setItemMeta(butymeta); ItemStack spodnie = new ItemStack(Material.DIAMOND_LEGGINGS); ItemMeta spodniemeta = spodnie.getItemMeta(); spodniemeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); spodniemeta.addEnchant(Enchantment.DURABILITY, 3, true); spodnie.setItemMeta(spodniemeta); ItemStack klata = new ItemStack(Material.DIAMOND_CHESTPLATE); ItemMeta klatameta = klata.getItemMeta(); klatameta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); klatameta.addEnchant(Enchantment.DURABILITY, 3, true); klata.setItemMeta(klatameta); ItemStack helm = new ItemStack(Material.DIAMOND_HELMET); ItemMeta helmmeta = helm.getItemMeta(); helmmeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); helmmeta.addEnchant(Enchantment.DURABILITY, 3, true); helm.setItemMeta(helmmeta); Za każdym razem tworzysz nowego ItemStacka gdy gracz odbierze zestaw. Lepiej itemy stworzyć przy starcie serwera a potem je tylko dawać do ekwipunku Ale najważniejsze, nie ma tu jakiegokolwiek zapisu... Więc na większe serwery plugin odpada, bo przy każdym restarcie/reloadzie będzie można odebrać kity jak już wcześniej wspomniałem. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DemoN 15 Opublikowano 7 lutego 2019 Autor Udostępnij Opublikowano 7 lutego 2019 6 minut temu, LloydPL napisał: z kodu z dekompilatora poradze ci żebyś nie zamieniał & na § i nie tworzył za każdym razem itemstacków tylko najlepiej przy starcie i je gdzieś trzymał i nw czy z tym zadziała na 1.12 import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.IChatBaseComponent; import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer; import net.minecraft.server.v1_8_R3.PacketPlayOutChat; import net.minecraft.server.v1_8_R3.PacketPlayOutTitle; import net.minecraft.server.v1_8_R3.PacketPlayOutTitle.EnumTitleAction; import net.minecraft.server.v1_8_R3.PlayerConnection; i też nie widziałem żadnego cfg zestawów i wgl niczego, tylko sforsowane przez kod kity ;v Kod nie jest z dekompilatora, jest to po prostu klasa przekopiowana ze starszego pluginu tak by się nie męczyć. Poslugiwalem się inv.addItem lecz zmieniłem metodę bo nie działały mi enchanty. Ps. skąd masz kod jak nie z dekompilatora? ; - ; 10 minut temu, HotAngel2K17 napisał: Gratulacje ! Brak jakiegokolwiek zapisu, nawet flat. Czyli po każdym reloadzie/restarcie serwera można brać kity od nowa private final Map<String, Long> GRACZ; private final Map<String, Long> VIP; private final Map<String, Long> PREMIUM; Zamiast tego można by było użyć prostego usera, dodatkowo ja polecam zapis UUID public static boolean canUse(long saveTime, long time) { return System.currentTimeMillis() - saveTime >= time; } Po co taka metoda ? Przecież można porównać longa w sposób tradycyjny. if(GRACZ.get(p.getDisplayName()) > System.currentTimeMillis()){ ItemStack koks = new ItemStack(Material.GOLDEN_APPLE, 10, (short)1); ItemStack kilof = new ItemStack(Material.DIAMOND_PICKAXE); ItemMeta kilofmeta = kilof.getItemMeta(); kilofmeta.addEnchant(Enchantment.DIG_SPEED, 5, true); kilofmeta.addEnchant(Enchantment.DURABILITY, 3, true); kilofmeta.addEnchant(Enchantment.LOOT_BONUS_BLOCKS, 3, true); kilof.setItemMeta(kilofmeta); ItemStack miecz = new ItemStack(Material.DIAMOND_SWORD); ItemMeta mieczmeta = miecz.getItemMeta(); mieczmeta.addEnchant(Enchantment.DAMAGE_ALL, 5, true); mieczmeta.addEnchant(Enchantment.FIRE_ASPECT, 2, true); mieczmeta.addEnchant(Enchantment.DURABILITY, 3, true); miecz.setItemMeta(mieczmeta); ItemStack miecz2 = new ItemStack(Material.DIAMOND_SWORD); ItemMeta miecz2meta = miecz2.getItemMeta(); miecz2meta.addEnchant(Enchantment.KNOCKBACK, 2, true); miecz2.setItemMeta(miecz2meta); ItemStack buty = new ItemStack(Material.DIAMOND_BOOTS); ItemMeta butymeta = buty.getItemMeta(); butymeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); butymeta.addEnchant(Enchantment.DURABILITY, 3, true); buty.setItemMeta(butymeta); ItemStack spodnie = new ItemStack(Material.DIAMOND_LEGGINGS); ItemMeta spodniemeta = spodnie.getItemMeta(); spodniemeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); spodniemeta.addEnchant(Enchantment.DURABILITY, 3, true); spodnie.setItemMeta(spodniemeta); ItemStack klata = new ItemStack(Material.DIAMOND_CHESTPLATE); ItemMeta klatameta = klata.getItemMeta(); klatameta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); klatameta.addEnchant(Enchantment.DURABILITY, 3, true); klata.setItemMeta(klatameta); ItemStack helm = new ItemStack(Material.DIAMOND_HELMET); ItemMeta helmmeta = helm.getItemMeta(); helmmeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true); helmmeta.addEnchant(Enchantment.DURABILITY, 3, true); helm.setItemMeta(helmmeta); Za każdym razem tworzysz nowego ItemStacka gdy gracz odbierze zestaw. Lepiej itemy stworzyć przy starcie serwera a potem je tylko dawać do ekwipunku Ale najważniejsze, nie ma tu jakiegokolwiek zapisu... Więc na większe serwery plugin odpada, bo przy każdym restarcie/reloadzie będzie można odebrać kity jak już wcześniej wspomniałem. Dzięki za rady, lecz napisałem o tym że po każdym restarcie/reloadzie będzie można brać kity na nowo i naprawię to w przyszłej wersji. Co itemów to każdy robi jak chce, nie narzucajmy komuś swojego kodu. Pozdrawiam Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LloydPL 436 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 Teraz, DemoN napisał: Kod nie jest z dekompilatora, jest to po prostu klasa przekopiowana ze starszego pluginu tak by się nie męczyć. Poslugiwalem się inv.addItem lecz zmieniłem metodę bo nie działały mi enchanty. Ps. skąd masz kod jak nie z dekompilatora? ; - ; Dzięki za rady, lecz napisałem o tym że po każdym restarcie/reloadzie będzie można brać kity na nowo i naprawię to w przyszłej wersji. Co itemów to każdy robi jak chce, nie narzucajmy komuś swojego kodu. Pozdrawiam tworzenie wiele razy tych samych obiektów jest niewydajne i bez sensu, sendTitle czy co tam miałeś z tym NMSem nie zadziała na innej wersji niż ta co jest w importach DemoN 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DemoN 15 Opublikowano 7 lutego 2019 Autor Udostępnij Opublikowano 7 lutego 2019 Teraz, LloydPL napisał: tworzenie wiele razy tych samych obiektów jest niewydajne i bez sensu, sendTitle czy co tam miałeś z tym NMSem nie zadziała na innej wersji niż ta co jest w importach Racja, w następnej wersji zrobię poprawkę i użyje klasycznego sendTitle. Pozdrawiam LloydPL 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kerpson 549 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 @DemoN gdzie ja ci code style narzucam ? Po prostu skopiowałeś metodę "canUse" z filmiku na yt, a ona sensu nie ma tak naprawdę. Nawet linka dam, bo plugin jest z source code Przecież do longa można dodawać czas np. w godzinach, sekundach a potem go tylko porównywać. GRACz.put(p.getDisplayName(), System.currentTimeMillis() + (1000 * 60)); - Nwm czy dobrze dałem "()", jak coś poprawcie - np 60 sekund Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DemoN 15 Opublikowano 7 lutego 2019 Autor Udostępnij Opublikowano 7 lutego 2019 2 godziny temu, HotAngel2K17 napisał: @DemoN gdzie ja ci code style narzucam ? Po prostu skopiowałeś metodę "canUse" z filmiku na yt, a ona sensu nie ma tak naprawdę. Nawet linka dam, bo plugin jest z source code Przecież do longa można dodawać czas np. w godzinach, sekundach a potem go tylko porównywać. GRACz.put(p.getDisplayName(), System.currentTimeMillis() + (1000 * 60)); - Nwm czy dobrze dałem "()", jak coś poprawcie - np 60 sekund Czy używanie takiej metody od razu jest "kopiowaniem"? Oczywiście, nie narzucasz tylko piszesz że "to przecież mogło być inaczej". Mówiłem że jest to wersja "próbna" pluginu A sam plugin będzie jeszcze rozbudowany o wiele opcji I kod będzie stałe poprawiany. Ale nie mam ci tego za złe bo od tego jest forum, żeby wymieniać się opiniami na dany temat i sugerować swoje rozwiązania. Podałeś dobrą metodę I za to masz +. Jak jeszcze coś zauważysz możesz dac znać. Pozdrawiam. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kerpson 549 Opublikowano 7 lutego 2019 Udostępnij Opublikowano 7 lutego 2019 Doradziłem tylko to nie hejt. DemoN 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
yooniks 347 Opublikowano 8 lutego 2019 Udostępnij Opublikowano 8 lutego 2019 Cytat Proszę wziąć pod uwagę że plugin waży zaledwie 13kb! to nie zaden plus =/ gdzie github =( Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.