maxcom1 111 Opublikowano 25 czerwca 2020 Udostępnij Opublikowano 25 czerwca 2020 (edytowane) Hej, chciałbym przedstawić wam mój pierwszy publiczny plugin - explock. Jest to wtyczka blokująca eksplozje na serwerze, posiada łatwą możliwość wyłączenia/włączenia blokady eksplozji pod komendą. Posiada kilka komend, które pomogą ci w korzystaniu z niego. Komendy: Spoiler /explock help - wyświetla listę komend /explock info - pokazuje najważniejsze informacje /explock reload - Przeładowuje plugin (config, wiadomości) /explock turn - Włącza/Wyłącza blokadę eksplozji /explock update - Pokazuje informacje o nowszej wersji /explock plugin - Pokazuje informacje o wtyczce /explock gui - Otwiera menu ustawień w grze Permisje: Spoiler explock.* - Wszystkie permisje explock.help - Dostęp do /explock help explock.reload - Dostęp do /explock reload explock.info - Dostęp do /explock info explock.update - Wysyła informacje o aktualizacjach przy wejściu (do wyłączenia w configu), dostęp do /explock update explock.turn - Dostęp do /explock turn explock.gui - Dostęp do /explock gui Wtyczkę tą możesz konfigurować na wiele sposobów, w configu oraz pliku wiadomości. Config.yml Spoiler enable: true #Włącza/wyłącza blokadę eksplozji (true/false) sendCancelMessage: false #Wysyła wiadomość do konsoli przy zablokowaniu eksplozji (true/false) updateChecker: true #Wysyła wiadomość do konsoli czy plugin jest aktualny [przy starcie] (true/false) cancelExplosionDamage: true #Wyłącza obrażenia od eksplozji (true/false) keepItemsOnExplosion: false #Wyłącza domyślne usuwanie przedmiotów z ziemi przy eksplozji (true/false) lockedEntities: - PRIMED_TNT - MINECART_TNT #Lista blokowanych eksplozji (bytów) enable-world-filter: false #Włącza/wyłącza filtrowanie światów (true/false) enabledWorlds: - world #Lista światów, w których eksplozje będą blokowane lockBlocks: false #Blokuje eksplozję bloków - łóżek w netherze / kotwic w overworldzie (true/false) updateInfoToPlayer: true #Wysyła wiadomość o aktualności pluginu przy dołączeniu do graczy z permisją (true/false) WAŻNE: Możesz wybrać które eksplozje mają być anulowane (np. tnt). Ustawisz je w configu (lockedEntities). Dostępne: PRIMED_TNT, MINECART_TNT, CREEPER, ENDER_CRYSTAL, WITHER, WITHER_SKULL. Pozostaw listę w configu pustą by zablokować wszystkie eksplozje bytów. Możesz również zablokować eksplozję bloków (łóżek w netherze / kotwic w overworldzie) Możesz w łatwy sposób zmienić wiadomości wysyłane przez plugin. messages.yml Spoiler Prefix: ' &8»&r ' None: Brak All: Wszystkie Disabled: '&cWyłączono' Config: reload: Ładowanie konfiguracji.. loaded: '&aPomyślnie przeładowano' Sender: noPermission: '&cNie posiadasz permisji do tego.' explosionLockOff: '&7Blokada eksplozji jest &cwyłączona.' explosionLockOn: '&7Blokada eksplozji jest &awłączona..' cancelMessages: 'Off': '&7Wiadomości o anulowanych eksplozjach są &cwyłączone&7.' 'On': '&7Wiadomości o anulowanych eksplozjach są &awłączone&7.' explosionLockDisabled: '&7Pomyślnie &cwyłączono &7blokadę eksplozji.' explosionLockEnabled: '&7Pomyślnie &awłączono &7blokadę eksplozji.' cancelExplosionDamage: 'Off': '&7Blokada obrażeń od eksplozji jest &cwyłączona&7.' 'On': '&7Blokada obrażeń od eksplozji jest &awłączona&7.' updateChecker: 'Off': '&7Sprawdzanie aktualizacji jest &cwyłączone&7.' 'On': '&7Sprawdzanie aktualizacji jest &awłączone&7.' explosionCancelMessage: '&4Anulowano eksplozję.' lockedEntities: '&7Zablokowane byty: ' wrongCommand: '&cNieznana komenda! Wpisz /explock help po listę komend.' blockExplosionLockInfo: 'Off': '&7Blokada eksplozji bloków jest &cwyłączona' 'On': '&7Blokada eksplozji bloków jest &awłączona' updateInfoToPlayer: 'Off': '&7Informacje o akt. do graczy są &cwyłączone' 'On': '&7Informacje o akt. do graczy są &awłączone' worldFilter: 'Off': '&7Filtrowanie światów jest &cwyłączone' 'On': '&7Filtrowanie światów jest &awłączone' List: '&7Blokada eksplozji w światach: ' keepItemsOnExplosion: 'Off': '&7Itemy przy eksplozji &csą usuwane' 'On': '&7Itemy przy eksplozji &anie są usuwane' modules: gui: explosionDamageDisabled: '&7Pomyślnie &cwyłączono &7obrażenia od eksplozji' explosionDamageEnabled: '&7Pomyślnie &awłączono &7obrażenia od eksplozji' updateCheckerDisabled: '&7Pomyślnie &cwyłączono &7sprawdzanie aktualizacji' updateCheckerEnabled: '&7Pomyślnie &awłączono &7sprawdzanie aktualizacji' blockExplosionDisabled: '&7Pomyślnie &cwyłączono &7blokadę eksplozji bloków' blockExplosionEnabled: '&7Pomyślnie &awłączono &7blokadę eksplozji bloków' sendUpdateInfoToPlayerDisabled: '&7Pomyślnie &cwyłączono &7informacje o akt. do graczy' sendUpdateInfoToPlayerEnabled: '&7Pomyślnie &awłączono &7informacje o akt. do graczy' worldFilterDisabled: '&7Pomyślnie &cwyłączono &7filtrowanie światów' worldFilterEnabled: '&7Pomyślnie &awłączono &7filtrowanie światów' keepingItemsDisabled: '&7Pomyślnie &cwyłączono &7utrzymanie przedmiotów przy eksplozji' keepingItemsEnabled: '&7Pomyślnie &awłączono &7utrzymanie przedmiotów przy eksplozji' savedSettings: '&7Zapisano config!' Funkcje/możliwości Spoiler Blokowanie eksplozji bytów (tnt, creeper itd.) Blokowanie eksplozji bloków (łóżek w netherze / kotwic w overworldzie) Blokowanie eksplozji w poszczególnych światach Sprawdzanie aktualności wersji Blokowanie obrażeń od eksplozji Możliwość zablokowania znikania leżących przedmiotów przy eksplozji Wysyłanie informacji o zablokowaniu eksplozji do konsoli Możliwość dostosowywania wiadomości wysyłanych przez plugin Możliwość edytowania ustawień wtyczki w GUI Możliwość edycji ustawień z poziomu gry Spoiler Pobieranie Kliknij tu, aby pobrać plugin! Jeśli masz jakieś pytania - możesz skierować je na discordzie (maxcom1#0988) lub na tym forum w wiadomości prywatnej Edytowane 16 lipca 2022 przez maxcom1 Aktualizacja 0.8 Glicz 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/ Udostępnij na innych stronach Więcej opcji udostępniania...
kerpson 551 Opublikowano 25 czerwca 2020 Udostępnij Opublikowano 25 czerwca 2020 Dodaj link do githuba, będzie wygodniej z oceną. A z dekompilatora z tego co widzę, to kod wygląda dziwnie. Momentami używasz paragrafów, a raz metody ChatColor Boolean enableinfo = Boolean.valueOf(Main.plugin.getConfig().getBoolean("enable")); Używasz niepotrzebnie obiektu Boolean + pobierasz zmienne podczas działania pluginu, zamiast wcześniej je gdzieś załadować. (W eventach to samo) No i wydaje mi sie, że metoda UpdateChecker jest wzięta z jakiegoś innego źródła. Skąd to podejrzenie ? Prosto, tutaj używasz obiektowego podejścia: private Main plugin; private int resourceId; public UpdateChecker(Main plugin, int resourceId) { this.plugin = plugin; this.resourceId = resourceId; } No a w reszcie same instancje Dodatkowo TabComplete nie zadziała do końca tak jak powinien, ale po 1: Po co tworzysz cały czas nową listę ? można ją utworzyć wcześniej a potem ją tylko zwracać No i ten błąd: Jeżeli gracz np. wpisze upd i kliknie TAB to z automatu wyskoczy mu Help, a nie update, spowodowane jest to tym, że nie sprawdzasz czy argument jest pusty czy nie itd. Przykład tutaj: Player senderPlayer = sender instanceof Player ? (Player) sender : null; ArrayList<String> matchedPlayers = new ArrayList<String>(); for (Player player : sender.getServer().getOnlinePlayers()) { String name = player.getName(); if ((senderPlayer == null || senderPlayer.canSee(player)) && StringUtil.startsWithIgnoreCase(name, lastWord)) { matchedPlayers.add(name); } } Collections.sort(matchedPlayers, String.CASE_INSENSITIVE_ORDER); return matchedPlayers; Kod działać, działa ale jakieś poprawki by się sprzydały. Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-250711 Udostępnij na innych stronach Więcej opcji udostępniania...
maxcom1 111 Opublikowano 25 czerwca 2020 Autor Udostępnij Opublikowano 25 czerwca 2020 Dobrze, dziękuje za opinie. Postaram się wszystko zoptymalizować, jednak nie cały kod który podałeś faktycznie znajduje się w pluginie. Godzinę temu, kerpson napisał: Jeżeli gracz np. wpisze upd i kliknie TAB to z automatu wyskoczy mu Help, a nie update, spowodowane jest to tym, że nie sprawdzasz czy argument jest pusty czy nie itd. Przykład tutaj: Wiesz jak to naprawić? Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-250726 Udostępnij na innych stronach Więcej opcji udostępniania...
kerpson 551 Opublikowano 25 czerwca 2020 Udostępnij Opublikowano 25 czerwca 2020 (edytowane) W dniu 25.06.2020 o 17:51, maxcom1Games napisał: Postaram się wszystko zoptymalizować, jednak nie cały kod który podałeś faktycznie znajduje się w pluginie. wina dekompilatora może nwm, dlatego fajnie jakbyś dał na githuba W dniu 25.06.2020 o 17:51, maxcom1Games napisał: Wiesz jak to naprawić? ta return StringUtil.startsWithIgnoreCase(listaKtoraUtworzysz, args[0]) Tamtego nie dawaj, pomyliłem metody XD Użyj tego: return StringUtil.copyPartialMatches(args[0], listaKtoraZrobisz, new ArrayList<>); Edytowane 25 czerwca 2020 przez kerpson jakis blad i kliklem edytuj ale nie moge edytowac XD Łączę posty. Notatka dodana przez Wojciu maxcom1 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-250730 Udostępnij na innych stronach Więcej opcji udostępniania...
maxcom1 111 Opublikowano 25 czerwca 2020 Autor Udostępnij Opublikowano 25 czerwca 2020 Ok, jeżeli chodzi o 3 godziny temu, kerpson napisał: Momentami używasz paragrafów, a raz metody ChatColor ChatColor używam tylko do wysyłania wiadomości z configu, a do innych paragrafy. kerpson i nwse 2 Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-250745 Udostępnij na innych stronach Więcej opcji udostępniania...
maxcom1 111 Opublikowano 1 lipca 2020 Autor Udostępnij Opublikowano 1 lipca 2020 (edytowane) Aktualizacja 0.4 Dodano możliwość zablokowania wybranych eksplozji (np. tych od TNT) [opisano w prezentacji] Poprawiono i zoptymalizowano kod Dodano nowy element do komendy /explock info Dodano logi blokowania eksplozji (z dokładnością co do czasu, świata i koordynatów) Dodano oficjalne wsparcie dla 1.16 Naprawiono błąd z tabami (podziękowania dla @kerpson) Edytowane 24 października 2020 przez maxcom1 Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-251507 Udostępnij na innych stronach Więcej opcji udostępniania...
Ask3r 34 Opublikowano 5 lipca 2020 Udostępnij Opublikowano 5 lipca 2020 Możesz dodać że o wybranej godzinie tnt jest wyłączone, a potem się włącza. Pewnie komuś się przyda Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-251978 Udostępnij na innych stronach Więcej opcji udostępniania...
maxcom1 111 Opublikowano 10 lipca 2020 Autor Udostępnij Opublikowano 10 lipca 2020 W dniu 5.07.2020 o 23:50, Ask3r napisał: Możesz dodać że o wybranej godzinie tnt jest wyłączone, a potem się włącza. Pewnie komuś się przyda Dzięki za komentarz. Planuję coś takiego w przyszłości. Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-252470 Udostępnij na innych stronach Więcej opcji udostępniania...
maxcom1 111 Opublikowano 26 października 2020 Autor Udostępnij Opublikowano 26 października 2020 (edytowane) Aktualizacja 0.5.1 Przepisano wtyczkę, naprawiając błędy, Zoptymalizowano wtyczkę, Dodano sekcje Permisji do prezentacji, Naprawiono błędy z przeładowywaniem configu i wiadomości, Naprawiono błędy z blokadą eksplozji bytów, Dodano możliwość blokowania eksplozji bloków (łóżka w netherze czy kresie, oraz kotwicy w zwykłym świecie), Naprawiono inne błędy, Dodano nowe opcje w pliku messages.yml, Dodano możliwość zmiany prefixu, Dodano nowe informacje do /explock info Wersje poniżej 0.5 nie są już wspierane! Jeśli znajdziesz jakiś błąd, proszę zgłoś go do mnie. Edytowane 16 lipca 2022 przez maxcom1 Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-265169 Udostępnij na innych stronach Więcej opcji udostępniania...
maxcom1 111 Opublikowano 16 lipca 2022 Autor Udostępnij Opublikowano 16 lipca 2022 Aktualizacja 0.6 - 0.8 Hej, ostatnio wyszła nowa wersja wtyczki - 0.8. We wcześniejszych wersjach zaszły zmiany: - Zoptymalizowano działanie wtyczki - Poprawiono kilka mniejszych błędów - Dodano możliwość włączenia blokady na poszczególnych światach - Poprawiono działanie konfiguracji - Dodano tryb GUI - zarządzanie ustawieniami z poziomu gry - Dodano opcję blokady usuwania przedmiotów przy eksplozji - Dodano wsparcie dla starszych i nowszych wersji (akt. 1.3.2 - 1.19.x) Cytuj Odnośnik do komentarza https://skript.pl/temat/40096-explock-nigdy-wi%C4%99cej-eksplozji/#findComment-323893 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ą.