Skocz do zawartości

ChatManager plugin by Greexowy


Rekomendowane odpowiedzi

Siema! Zgodnie z waszymi propozycjami, zedytowałem mój plugin. Zapraszam do oceny i podpowiedzi co jeszcze można zmienić!

ChatManager v 1.1 - KLIKNIJ TUTAJ (GitHUB)

Dodane w wersji 1.1 - Pokazywanie czy chat jest wlaczony czy wylaczony w GUI, Wiadomość w konsoli o tym kto wyczyścił chat.

Poprawione w wersji 1.1 - Nazwy package'ów i klas, Puste wiadomości czyszczenia chatu nie pojawiają się w konsoli, usunięcie niepotrzebnego onDisable, 

Edytowane przez Grex
AKTUALIZACJA
Odnośnik do komentarza
https://skript.pl/temat/38989-chatmanager-plugin-by-greexowy/
Udostępnij na innych stronach

  1. Wszystkie package'e nazywamy z małej litery. Ogólnie w głównym package'u lepiej by wyglądało pl zamiast poland :kappalul:
  2. Główną klasę powinno się nazywać NazwaPluginu lub NazwaPluginuPlugin a nie Main :v
  3. Zmień nazwę package'a events na listeners, klasy które w nim nazwij najlepiej tak jakie eventy nasłuchujesz w nich, np. jak nasłuchujesz eventu AsyncPlayerChatEvent to nazwij klase AsyncPlayerChatListener
  4. W klasie Main wywal to onDisable() bo nie jest potrzebne, i tak nic w niej nie wywołujesz
  5. Zamiast wysyłać przy czyszczeniu chatu 100 broadcastów lepiej zloopuj sobie wszystkich graczy online używając Bukkit.getOnlinePlayers() i do nich wyślij wiadomość, raczej nikt nie chce żeby mu wysyłało 100 pustych wiadomości w konsoli :thonk:
  6. Zamiast tworzyć nowe itemy za każdym wywołaniem komendy stwórz je raz i przypisz do zmiennych globalnych
  7. Jak masz event to nie nazywaj zmiennej po prostu e tylko najlepiej całe event
  8. Nie zagnieżdżaj tak kodu i returnuj jak najwcześniej czyli np. 
    if (!(sender instanceof Player)) {
    	return;
    }

    kod będzie wtedy znacznie łatwiejszy do czytania

  9. zamiast System.out.println używaj lepiej Bukkitowego loggera, Bukkit.getLogger() i np. Bukkit.getLogger().info("tekst") lub jeśli jest to możliwe do wywołania "z głównej klasy" to plugin.getLogger()
     

Oczywiście jest trochę błędów ale tak to spoko, dorób sobie ten plik konfiguracyjny o którym wspominałeś. Fajnie też, że używasz githuba = ) Również spoko jest to, że używasz ChatColor zamiast paragrafów jak to niektórzy robią. Spoko jest to, że nie robisz tego w głównej klasie jak to niektórzy tylko od razu w oddzielnych klasach = ) Nie jest źle jak na pierwszy plugin

Edytowane przez Peridot
Odnośnik do komentarza
https://skript.pl/temat/38989-chatmanager-plugin-by-greexowy/#findComment-245328
Udostępnij na innych stronach

1 godzinę temu, Peridot napisał:
  1. Wszystkie package'e nazywamy z dużej litery. Ogólnie w głównym package'u lepiej by wyglądało pl zamiast poland :kappalul:
  2. Główną klasę powinno się nazywać NazwaPluginu lub NazwaPluginuPlugin a nie Main :v
  3. Zmień nazwę package'a events na listeners, klasy które w nim nazwij najlepiej tak jakie eventy nasłuchujesz w nich, np. jak nasłuchujesz eventu AsyncPlayerChatEvent to nazwij klase AsyncPlayerChatListener
  4. W klasie Main wywal to onDisable() bo nie jest potrzebne, i tak nic w niej nie wywołujesz
  5. Zamiast wysyłać przy czyszczeniu chatu 100 broadcastów lepiej zloopuj sobie wszystkich graczy online używając Bukkit.getOnlinePlayers() i do nich wyślij wiadomość, raczej nikt nie chce żeby mu wysyłało 100 pustych wiadomości w konsoli :thonk:
  6. Zamiast tworzyć nowe itemy za każdym wywołaniem komendy stwórz je raz i przypisz do zmiennych globalnych
  7. Jak masz event to nie nazywaj zmiennej po prostu e tylko najlepiej całe event
  8. Nie zagnieżdżaj tak kodu i returnuj jak najwcześniej czyli np. 
    
    if (!(sender instanceof Player)) {
    	return;
    }

    kod będzie wtedy znacznie łatwiejszy do czytania

  9. zamiast System.out.println używaj lepiej Bukkitowego loggera, Bukkit.getLogger() i np. Bukkit.getLogger().info("tekst") lub jeśli jest to możliwe do wywołania "z głównej klasy" to plugin.getLogger()
     

Oczywiście jest trochę błędów ale tak to spoko, dorób sobie ten plik konfiguracyjny o którym wspominałeś. Fajnie też, że używasz githuba = ) Również spoko jest to, że używasz ChatColor zamiast paragrafów jak to niektórzy robią. Spoko jest to, że nie robisz tego w głównej klasie jak to niektórzy tylko od razu w oddzielnych klasach = ) Nie jest źle jak na pierwszy plugin

Dzięki, w wolnym czasie poprawie te błędy i dorobię config. Dodatkowo zapytam się: Lepiej używać Eclipse czy IntelliJ ? Jakie są różnice i wady/zalety programów?

Edytowane przez Grex
Odnośnik do komentarza
https://skript.pl/temat/38989-chatmanager-plugin-by-greexowy/#findComment-245352
Udostępnij na innych stronach

Jak na jeden z pierwszych całkiem spoko.

  • Ułatwieniem dla Ciebie było by używanie jakiegoś ItemBuildera czy coś.
  • Fajnie, że używasz pętli, +
  • Zamiast takiego zabiegu:
  •  for(int i = 0; i < 100; i++) {
                                for (Player players : Bukkit.getOnlinePlayers()) {
                                    players.sendMessage(" ");
                                }
                            }
  • Możesz na starcie w pluginie stworzyć dużą wiadomość i wysyłać graczom.
  • System.out.println, lepiej użyć Loggera
  • No i ta zmienna "chat" mogła by nie być statyczna

Generalnie fajna uwaga, takie inventory możesz stworzyć w innej klasie, załadować w klasie glównej, a potem je tylko otwierać. Zaoszczędzisz na zasobach serwera i po części kod będzie schludniejszy.

Odnośnik do komentarza
https://skript.pl/temat/38989-chatmanager-plugin-by-greexowy/#findComment-245468
Udostępnij na innych stronach

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ą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...