Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Plugin] cpvpAutoMessage - plugin na automatyczne wiadomości


Rekomendowane odpowiedzi

Opublikowano

3r9XimF.png

 

Prosty i wydajny plugin na cykliczne wysyłanie automatycznych wiadomości do graczy na serwerze.

 

 

 

 

 

Skąd pomysł?

 

 

Po zobaczeniu kodu dość popularnego pluginu AutoMessage,

 

 

byłem w szoku, że ktoś może używać czegoś takiego u siebie. 

 

 

 

 

 

Konfiguracja:

 

 

delay - co ile sekund mają być wysyłane wiadomości

 

 

sendToConsole - true/false - włącza/wyłącza opcję wysyłania wiadomości do konsoli

 

 

messages - lista wiadomości, które mają być wysyłane

 

 

 

 

 

Komendy:

 

 

/amreload - przeładowanie konfiguracji pluginu (uprawnienie: cpvpautomessage.reload)

 

 

 

 

 

Download:

 


https://drive.google.com/file/d/16MQG7JMhUJ_bjv7fVFweVFobP7byudjm/view

 

Skan:

 

 

https://virustotal.com/pl/file/b13ec5ac1ea964367b80316f2ee8d17f4176cfceb2e812216f908287e18f87d1/analysis/1492514123

 

Na razie plugin ma tylko tyle opcji, testowane na wersji 1.11.

 

 

Piszcie co można dodać lub zmienić. :)

 

4L0M4l0.png

  • Odpowiedzi 151
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Po co komu taki plugin? AutoMessage jest znane, i są jeszcze inne o wiele lepsze odpowiedniki niż twój plugin. Ocena końcowa: 1/10 bezużyteczny.

Jeden z niewielu oficjalnych partnerów minecraft pochodzących z polski.

goPYjbL.png

Opublikowano

Po co komu taki plugin? AutoMessage jest znane, i są jeszcze inne o wiele lepsze odpowiedniki niż twój plugin. Ocena końcowa: 1/10 bezużyteczny.

 

Tamto ma tyle zbędnych opcji.

Bezsens ocena. :_:

 

 

@topic

 

Ja chcę tylko zapytać o to:

public Collection<?> getOnlinePlayers() {
    try {
      Method method = Bukkit.class.getDeclaredMethod("getOnlinePlayers", new Class[0]);
      Object players = method.invoke(null, new Object[0]);
      if ((players instanceof Player[])) {
        return Arrays.asList((Player[])players);
      }
      
      return (Collection)players;
    }
    catch (NoSuchMethodException e)
    {
      e.printStackTrace();
    }
    catch (SecurityException e) {
      e.printStackTrace();
    }
    catch (IllegalAccessException e) {
      e.printStackTrace();
    }
    catch (IllegalArgumentException e) {
      e.printStackTrace();
    }
    catch (InvocationTargetException e) {
      e.printStackTrace();
    }
    return null;
  }

Co to do cholery jest?

Wytłumaczysz mi? :_:

Bo teraz poziom raka, został osiągnięty totalnie.

No albo ja na tak ,,zaawansowanym" poziomie jeszcze nie jestem. xD

784091427630431250239.png

Regulamin sygnatur

Opublikowano

 

Po co komu taki plugin? AutoMessage jest znane, i są jeszcze inne o wiele lepsze odpowiedniki niż twój plugin. Ocena końcowa: 1/10 bezużyteczny.

 

Tamto ma tyle zbędnych opcji.

Bezsens ocena. :_:

 

I co z tego że ma zbędne opcje jak nie musisz ich używać a zjedzą ci 1kb ramu? A i tak działa lepiej od tego, bo np nie ma takiego gówna jak to co sam podałeś.

 

 

Kompletnie bez sensu plugin, jest pierdyliard takich samych i masa lepszych.

 

 

@HAMMERxPL AutoMessage jest wydajny, a ta twoje metoda na pobieranie jest do dupy bo używa refleksji bez cachowania. A do tego masz tylko e.printError zamiast coś z nim zrobić...

No i z jakiegoś powodu metoda zwraca Collection<?> zamiast Collection<? extends Player>

1438614356923701010629.png

 

Opublikowano

@GotoFinal Radzę jeszcze raz zajrzeć w kod AutoMessage, bo piszesz bzdury. Nie ma żadnego takiego samego i lepszego. :P

Jest masa pluginów od automessage na spigocie, dziesiątki... po co kolejny, a do tego prawie każdy jest bardziej rozbudowany nie pogarszając przy tym wydajności, bo to tylko automessage, prosty plugin wysyłający wiadomość.

Nawet nie jest to na githubie z mavenem itd, co by można było to rozwijać, coś tworzyć, tylko takie małe nikomu nie potrzebne gie ;/

1438614356923701010629.png

 

Opublikowano

 

@GotoFinal Radzę jeszcze raz zajrzeć w kod AutoMessage, bo piszesz bzdury. Nie ma żadnego takiego samego i lepszego. :P

Jest masa pluginów od automessage na spigocie, dziesiątki... po co kolejny, a do tego prawie każdy jest bardziej rozbudowany nie pogarszając przy tym wydajności, bo to tylko automessage, prosty plugin wysyłający wiadomość.

Nawet nie jest to na githubie z mavenem itd, co by można było to rozwijać, coś tworzyć, tylko takie małe nikomu nie potrzebne gie ;/

 

Na tym forum nie ma chyba żadnego innego pluginu na automatyczne wiadomości. Poza tym z tego co widziałem to ludzie raczej używają tych gorszych, niż na przykład cpvpAutoMessage.

Swoją drogą to mój plugin i ja będę go rozwijał, jak masz jakieś pomysły to pisz.

4L0M4l0.png

Opublikowano

Bardzo mi się podoba że zaczynasz coś robić dla społeczności na tym forum, to się ceni w tych czasach :)

Będę starał się być obiektywny, nie traktuj tego jako hejt, a po prostu konstruktywną krytykę by ewentualnie coś ulepszyć w przyszłych projektach.

1. 

if (!new File(Main.getInstance().getDataFolder(), "config.yml").exists()) {

myślę że to też mógłbyś zapisać do jakiejś finalnej zmiennej by nie pobierać za każdym razem obiektu File, nie traktuj tego jak doczepianie się na siłę, ale zyskasz wtedy na jakości kodu, i jego przejrzystości, a także lekko na optymalizacji. (ale nie bądźmy jak Goto, to są małe narzuty)

 

@Edit a z tego co widzę, tu pobierasz po prostu plik config.yml, a nie musisz tego robić, patrz niżej podpunkt 3.

 

2. A jeżeli już o configu mówimy, nie widzę tutaj żadnego powodu dlaczego by nie użyć saveDefaultConfig() i po prostu wrzucić defaultsy do pliku w resources. (o ile używasz mavena, bez mavena to config.yml jest chyba po prostu w projekcie, co nie?). Metoda którą wyżej podałem robi to samo, tyle że nie musisz tego ręcznie w kodzie robić, a jedynie w pliku wrzucasz własne rzeczy.

np.

Plik config.yml:

key: value
key1: value
key2: value
keyParent:
  keyChildren: value

i w onEnable() wrzucasz saveDefaultConfig() a później już tylko getConfig().getString("key") itd.

A później jedynie na starcie wrzucasz do swojej mapki messages wszystkie wartości z configu. :)

Twoja metoda load() jest bezużyteczna, bo saveDefaultConfig() robi to wszystko już za ciebie :)

 

 

Tak to nie mam jakichś większych zarzutów, można by się doczepić paru rzeczy ale nie chcę tego robić bo nie ma większej potrzeby. Jeszcze raz - fajnie że coś robisz, i szanuje to. 

Pozdrawiam

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Opublikowano

Ehhh po co komu taki plugin według mnie pisząc go tylko straciłeś czas, według mnie będzie bardzo mała liczba użytkowników która używała by tego pluginu. Ludzie chyba wolą trzymać się standardu i używać wielorakich skryptów jak i AutoMessage, lub kondziochat'u.

Opublikowano

@AdamGrzegorz jeżus, maria, wyjdz.

 

Sygnatura metody zawiera w sobie return type, więc kompilując pod metodę zwracającją Player[] java szuka metody zwracającą Player[] i jak nie znajdzie to error, albo refleksje, ale z cache... albo moduły. Albo coś podobnego.

Jesteś gorszy od hammera w tym momencie :/

 

 

Dorzucam screena bo edytował:

RMI0fr6.png

1438614356923701010629.png

 

Opublikowano

@AdamGrzegorz

1. Gdyby takie rozwiązanie działało, to nie dodawałbym do tego pluginu zbędnych rzeczy.

2. Co za różnica, skoro tej metody używam tylko przy wlączaniu pluginu? Twoje rozwiązanie w tym przypadku jest gorsze. 

3. Oba rozwiązania są dobre, a od początku robiłem w sumie tak jak widać. 

 

@ChuIigan222 jeśli wolisz korzystać z dużo mniej wydajnych rozwiązań to proszę bardzo, ja tylko udostępniam lepszą wersję. :)

 

Mała aktualizacja:

Download:

http://www91.zippyshare.com/v/1jON1KuF/file.html

Skan:

https://virustotal.com/pl/file/0c0b54e8fb519740b45d030750280537bfcef2701468a9a4877148532cdbd6e6/analysis/1491318867/

4L0M4l0.png

Opublikowano

 

@AdamGrzegorz

1.Gdyby takie rozwiązanie działało, to nie dodawałbym do tego pluginu zbędnych rzeczy.

2. Co za różnica, skoro tej metody używam tylko przy wlączaniu pluginu? Twoje rozwiązanie w tym przypadku jest gorsze. 

3. Oba rozwiązania są dobre, a od początku robiłem w sumie tak jak widać. 

 

@ChuIigan222 jeśli wolisz korzystać z dużo mniej wydajnych rozwiązań to proszę bardzo, ja tylko udostępniam lepszą wersję. :)

 

Mała aktualizacja:

Download:

http://www91.zippyshare.com/v/1jON1KuF/file.html

Skan:

https://virustotal.com/pl/file/0c0b54e8fb519740b45d030750280537bfcef2701468a9a4877148532cdbd6e6/analysis/1491318867/

Czemu jest gorsze? Jest 100x krótsze, a działa tak samo, może nawet lepiej.

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Opublikowano

@AdamGrzegorz nie zyskujesz ani trochę na długości, a nawet ją zwiększasz, do tego zapisujesz zmienną File, której używasz tylko raz. Po co?

a nie wiem o którym mówisz, jeżeli chodzi ci o to File to tak, owszem, masz rację, ale mówię o tym saveDefaultConfig(). 

 

@GotoFinal zgadnij k***a dlaczego edytowałem 

raz się ktoś pomyli, bo zapomniałem że trochę wcześniej dodali te kolekcję, a nie w 1.8 więc myślałem że tak to działa, a ten będzie teraz zapisywał te obrazki i wysyłał je wszędzie gdzie się da żeby mnie bardziej upokorzyć.

Goto rzeczywiście lubisz cachować rzeczy, nie tylko refleksje, jak robisz zdjęcia każdemu postowi. xD Ostatnio też walnąłeś xD irytujesz mnie już tym swoim egoizmem. 

 

po to edytowałem, żeby to usunąć, bo źle coś sprawdziłem, proste? proste. 

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Opublikowano

@AdamGrzegorz nie zyskujesz ani trochę na długości, a nawet ją zwiększasz, do tego zapisujesz zmienną File, której używasz tylko raz. Po co?

A jak wygląda porównanie co do zużycia RAM i PROCESORA dwóch pluginów? twojego i automessage

Opublikowano

@GotoFinal

 

Tak mnie czasami irytujesz, i tak swiecisz hipokryzja ze po prostu czasami nie moge.

 

W temacie javy apropo streamow plakales na temat ich wydajnosci, mimo ze to byly naprawde male liczby, i nie istotne a same streamy sa wygodne i ZAWSZE warto ich uzywac.

To tutaj placzesz na temat tego ze ktos nie chce uzywac calego syfu w auto message, bo policzmy te 1kb razy 30 pluginow i juz masz 30kb.

 

Zdecyduj sie w ktorym kierunku idziemy w koncu, bo hipokryzja swiecisz no kurde goto..

 

@HAMMERxPL

1.Przyjdz tutaj, bo wyplulem moj obiad na monitor i posprzataj po sobie.

 

 

 public Collection<?> getOnlinePlayers() {
        try {
            final Method method = Bukkit.class.getDeclaredMethod("getOnlinePlayers", (Class<?>[])new Class[0]);
            final Object players = method.invoke(null, new Object[0]);
            if (players instanceof Player[]) {
                return Arrays.<Player>asList((Player[])players);
            }
            return (Collection<?>)players;
        }
        catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
        catch (SecurityException e2) {
            e2.printStackTrace();
        }
        catch (IllegalAccessException e3) {
            e3.printStackTrace();
        }
        catch (IllegalArgumentException e4) {
            e4.printStackTrace();
        }
        catch (InvocationTargetException e5) {
            e5.printStackTrace();
        }
        return null;
    }

Oprocz tego ze to najwiekszy idiotyzm swiata, to jeszcze nie cachujesz metody..
2.

      for (final Object player : this.getOnlinePlayers()) {
            ((Player)player).sendMessage(message);
        }

Bo po co jest w bukkicie metoda broadcastMessage ... ;v
3.

      if (!Main.getInstance().getDataFolder().exists()) {
            Main.getInstance().getDataFolder().mkdir();
        }

Nie musisz tego robic, saveDefaultsConfig albo saveConfig robi to za Ciebie.
 
4. Zdecyduj sie czy piszesz statycznie czy obiektowo, bo ciezko z configiem a jesli juz piszesz statycznie, to uzywaj UPPER-CASE ladniej to wyglada i przejrzysciej.
5. Zainteresuj sie w koncu czym jest final w javie do cholery.
6. Ta komenda to porazka, wlasnoreczne sprawdzanie permisji, to wszystko masz domyslnie w bukkicie.
7. W komendzie na koncu zwracasz false, czyli dajesz znak bukkitowi ze cos poszlo nie tak, przez co on probuje wyswietlac usage i strzelam ze pokazuje sie pusta wiadomosc na czat... 
8. Jesli ktos chce kod samobojcy na serwerze to sciagac! Polecam!
 
 
PS. Tragedia programista.

<18:17:02> "MarmarukHD" został zablokowany permanentnie na serwerze przez "Otek" (Teamspeak przeznaczony dla ludzi.)

Opublikowano

 

@GotoFinal

 

Tak mnie czasami irytujesz, i tak swiecisz hipokryzja ze po prostu czasami nie moge.

 

W temacie javy apropo streamow plakales na temat ich wydajnosci, mimo ze to byly naprawde male liczby, i nie istotne a same streamy sa wygodne i ZAWSZE warto ich uzywac.

To tutaj placzesz na temat tego ze ktos nie chce uzywac calego syfu w auto message, bo policzmy te 1kb razy 30 pluginow i juz masz 30kb.

 

Zdecyduj sie w ktorym kierunku idziemy w koncu, bo hipokryzja swiecisz no kurde goto..

 

@HAMMERxPL

1.Przyjdz tutaj, bo wyplulem moj obiad na monitor i posprzataj po sobie.

 

 

 public Collection<?> getOnlinePlayers() {
        try {
            final Method method = Bukkit.class.getDeclaredMethod("getOnlinePlayers", (Class<?>[])new Class[0]);
            final Object players = method.invoke(null, new Object[0]);
            if (players instanceof Player[]) {
                return Arrays.<Player>asList((Player[])players);
            }
            return (Collection<?>)players;
        }
        catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
        catch (SecurityException e2) {
            e2.printStackTrace();
        }
        catch (IllegalAccessException e3) {
            e3.printStackTrace();
        }
        catch (IllegalArgumentException e4) {
            e4.printStackTrace();
        }
        catch (InvocationTargetException e5) {
            e5.printStackTrace();
        }
        return null;
    }

Oprocz tego ze to najwiekszy idiotyzm swiata, to jeszcze nie cachujesz metody..
2.

      for (final Object player : this.getOnlinePlayers()) {
            ((Player)player).sendMessage(message);
        }

Bo po co jest w bukkicie metoda broadcastMessage ... ;v
3.

      if (!Main.getInstance().getDataFolder().exists()) {
            Main.getInstance().getDataFolder().mkdir();
        }

Nie musisz tego robic, saveDefaultsConfig albo saveConfig robi to za Ciebie.
 
4. Zdecyduj sie czy piszesz statycznie czy obiektowo, bo ciezko z configiem a jesli juz piszesz statycznie, to uzywaj UPPER-CASE ladniej to wyglada i przejrzysciej.
5. Zainteresuj sie w koncu czym jest final w javie do cholery.
6. Ta komenda to porazka, wlasnoreczne sprawdzanie permisji, to wszystko masz domyslnie w bukkicie.
7. W komendzie na koncu zwracasz false, czyli dajesz znak bukkitowi ze cos poszlo nie tak, przez co on probuje wyswietlac usage i strzelam ze pokazuje sie pusta wiadomosc na czat... 
8. Jesli ktos chce kod samobojcy na serwerze to sciagac! Polecam!
 
 
PS. Tragedia programista.

 

Pisałem o używaniu streamów w często wykonywanych eventach i innych gorących miejscach, jak move event itd bo mają wtedy spory narzut... i dalej się tego trzymam.

A takich pluginów jak ten jest zwyczajnie masa.

 

Co do 8, bukkit chyba jakiś czas temu się poddał i nie wyświetla tej wiadomości, sam już teraz nie pamiętam... były jakieś kłótnie o to na irc kiedys.

 

 

 

 

@AdamGrzegorz nie zyskujesz ani trochę na długości, a nawet ją zwiększasz, do tego zapisujesz zmienną File, której używasz tylko raz. Po co?

a nie wiem o którym mówisz, jeżeli chodzi ci o to File to tak, owszem, masz rację, ale mówię o tym saveDefaultConfig(). 

 

@GotoFinal zgadnij k***a dlaczego edytowałem 

 

no nie wiem dlaczego edytowałeś bez zostawiania notki itd.

1438614356923701010629.png

 

Opublikowano

@de76 naprawdę nie musisz wszędzie chwalić się swoją głupotą - już to wszyscy wiedzą.

 

1. Masz starą wersję pluginu. Jeśli uważasz, że coś można zrobić lepiej to pokaż w jaki sposób. ;)

2. No nie wiem, od spamowania konsoli automatycznymi wiadomościami?

3. To w sumie bez znaczenia, ale na pewno jest prościej. Dzięki, zaraz zaimplementuję. :)

4. Co masz na myśli mówiąc statycznie a obiektowo? O uppercase pomyślę, na razie robię to tak, jak wszystkie inne zmienne.

5. Z tego co czytałem niczym konkretnym, ma znaczenie tylko przy czymś, co wykonuje się baardzo często i wiele razy.

6. Nie rozumiem, jakie własnoręczne sprawdzanie uprawnień? Jest tu po prostu check hasPermission.

7. Żadnej takiej wiadomości nie ma.

8. Samobójcą nie jestem, a ktoś z nas dwóch mógłby być.  :(

 

 

Zamiast tego:

        if (!Main.getInstance().getDataFolder().exists()) {
            Main.getInstance().getDataFolder().mkdir();
        }
        if (!new File(Main.getInstance().getDataFolder(), "config.yml").exists()) {
            Main.getInstance().saveDefaultConfig();
        }

chyba wystarczy to, racja? 

Main.getInstance().saveConfig();

 

 

4L0M4l0.png

Opublikowano

@HAMMERxPL

 

Gdybysmy mieli nasze osoby porownywac to bym stal gdzies na mount everest albo c**j wie gdzie,a Ty bys dalej byl szarym randomem.

 

To jeszcze sie doczepie skoro tak!

1.

 

 

  if (!new File(Main.getInstance().getDataFolder(), "config.yml").exists()) {
            Main.getInstance().saveDefaultConfig();
        }

Zdajesz sobie sprawe ze saveDefaultConfig nie nadpisuje configu xD?
2.Nie istotne czy czesto czy nie, powinenes dbac o publiczny kod a nie robic to tak c**jowo jak na swoim serwerze. (Apropo finalnych)
3.

 
public class MessageTask extends BukkitRunnable
{
    private int id;
  private static Method method;
    
    static {
        try {
            MessageTask.method = Bukkit.class.getDeclaredMethod("getOnlinePlayers", (Class<?>[])new Class[0]);
        }
        catch (NoSuchMethodException | SecurityException ex2) {
            final Exception ex;
            final Exception e = ex;
            e.printStackTrace();
        }
    }

O CHUJ, GORZEJ SIE TEGO NIE DALO ZROBIC xD

Ale tylko udowadnia tutaj ze masz 0 wiedze na temat javy, a tym bardziej zmiennych, static, final

4. Tak bardzo przeszkadza ta wiadomosc w konsoli xD

5. 

 

 

        for (String message : cfg.getStringList("messages")) {
            message = ChatUtil.fixColors(message);
            Config.messages.add(message);
        }

A tutaj mamy czysty przyklad braku znajomosci javy tworzysz liste mimo ze config przechowuje juz ja, i zamiast setowac ja i przetrzymywac referencje tworzysz nowa jak jakis idiota. (ekhem, trafne porownanie)
 
 
To ty sie upokarzasz, od szukania przez 3 lata programisty zaden z toba polglowku sie nie mogl dogadac i zostales sam "nim" (w cudzyslowie, bo programista ngidy cie nie nazwe, nie obraze siebie)
I bedziesz krytykowany tak dlugo az bede zyl, za wszystko, za twarz, za podejscie, za kod :)

<18:17:02> "MarmarukHD" został zablokowany permanentnie na serwerze przez "Otek" (Teamspeak przeznaczony dla ludzi.)

Opublikowano

@de76 masz szalenie mały zasób słownictwa, bo praktycznie co chwilę piszesz to samo. Dodatkowo źle wykorzystujesz aluzję z Mount Everestem, bo tutaj chodziło raczej o reprezentowanie jakiegoś poziomu, a nie o wyróżnianie się ze społeczeństwa. Ale udowadniaj swój brak inteligencji jeszcze bardziej - śmiało.  :lenny:

 

1. Dlaczego miałoby cokolwiek nadpisywać?

2. Dbam, ale takie zmiany są nieistotne.

3. Powtarzam, jeśli coś się da zrobić lepiej - zrób to sam.

4. Bardzo, dodatkowo zwiększa wagę logów i jest jak najbardziej zbędna.

5. A tutaj to nie wiem z czym masz problem.

 

Ja się jeszcze nie upokorzyłem i na pewno jestem od tego dalej niż ty.  ^^ Musisz mieć naprawdę smutne i zakompleksione życie. 

 

 

Piszcie co można jeszcze dodać do pluginu, na pewno pokażą się aktualizacje. :)

4L0M4l0.png

Opublikowano

naucz sie w końcu finali i obsługi wyjątków... wyjątki nie są po to by je wyprintować do konosli i kontynuować kod, jak wywali bląd w metodzie od refleksji dla getOnlinePlayers, to powinno ładnie poinformować o tym w konsoli, najlepiej z kontaktem do ciebie, wyrzucić stacktracke i najlepiej to albo wyłączyć plugin, albo server, tutaj wystarczy plugin bo nie robi nic krytycznego.

Bo tak to wywali gdzieś błąd (nie koniecznie tu, wszedzie robisz takie głupie catch) a plugin leci dalej rzucając jeszcze większą ilością błędów

1438614356923701010629.png

 

Opublikowano

Hamer, nie możesz pojąć tego, że czego nie napiszesz to i tak zostaniesz zgaszony? 

Kurde, widzisz że sam siebie robisz w chu*a a i tak brniesz w to dalej...

 

Jest masa lepszych pluginów (AutoMessage), uważasz sie za takiego wIELKIEGO programiste, a piszesz pluginy które w minute można zrobić..

Opublikowano

naucz sie w końcu finali i obsługi wyjątków... wyjątki nie są po to by je wyprintować do konosli i kontynuować kod, jak wywali bląd w metodzie od refleksji dla getOnlinePlayers, to powinno ładnie poinformować o tym w konsoli, najlepiej z kontaktem do ciebie, wyrzucić stacktracke i najlepiej to albo wyłączyć plugin, albo server, tutaj wystarczy plugin bo nie robi nic krytycznego.

Bo tak to wywali gdzieś błąd (nie koniecznie tu, wszedzie robisz takie głupie catch) a plugin leci dalej rzucając jeszcze większą ilością błędów

Za bardzo mnie nie obchodzi co użytkownik zrobi z niedziałającym pluginem, chyba każdy się połapie, że to nie działa, jak sypie błędami w konsoli, hm?

 

Poza tym gdzie twoim zdaniem można użyć final, bo ja znalazłem chyba tylko 2 możliwości.

4L0M4l0.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...