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

Ocena poradnika  

92 użytkowników zagłosowało

  1. 1. Co uważasz o tym poradniku?

    • Jest genialny, dokładnie taki jakiego było mi potrzeba!
    • Jest dobry, ale nie najlepszy.
    • Czy ja wiem... Coś tam tłumaczysz, ale więcej złego niż dobrego
    • Praktycznie niczego się nie nauczyłem, napraw to puki masz czas!
    • Całkowicie z**bany poradnik, na to juz nie ma ratunku, Ty wgl nie umiesz tłumaczyć!
  2. 2. Jaki teram obtać w kolejnym poradniku?

    • Java desktop
    • Java mobile (android)
    • C++ desktop
    • php
    • MySQL
    • Inny (napisz jaki, ale pamiętaj: nie obiecuję, że dam radę, nie umiem wszystkiego!)
    • Żadnym. Nie pisz.

Rekomendowane odpowiedzi

  • Odpowiedzi 175
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

Opublikowano (edytowane)

@Refresh - naprawa wielu błędów

 

@shooly

1. NAPRAWIONO!

2. NAPRAWIONO!

3. NAPRAWIONO!

4. NAPRAWIONO!

5. NAPRAWIONO!

6. NAPRAWIONO!

7. NAPRAWIONO!

8. NAPRAWIONO!

 

@Karolina_666

1. Jak sam ogarnę debugger to spoko :)

2. NAPRAWIONO!

3. NAPRAWIONO!

4. NAPRAWIONO!

5. NAPRAWIONO!

6. NAPRAWIONO!

7. NAPRAWIONO!

8. NAPRAWIONO!

9. NAPRAWIONO!

10. NAPRAWIONO!

11. NAPRAWIONO!

12. NAPRAWIONO!

13. NAPRAWIONO!

14. NAPRAWIONO!

15. NAPRAWIONO!

16. Ufff koniec xD

Edytowane przez andych1
Opublikowano

Lepiej, że zwróciliście uwagę niż ten tutorial byłby bez tych poprawek, to mój - nie ukrywam - pierwszy tutorial na tak sporą skalę :)

 

a co do kodu, to ja nie wiem jak mam, żadny sposobem nie mogę wejść w pełny edytor, zawsze mam okrojona wersję i do tego spoilery mi nie działają...

Opublikowano

@Refresh - naprawa wielu błędów

 

@shooly

1. NAPRAWIONO!

2. NAPRAWIONO!

3. NAPRAWIONO!

4. NAPRAWIONO!

5. NAPRAWIONO!

6. NAPRAWIONO!

7. NAPRAWIONO!

8. NAPRAWIONO!

 

@Karolina_666

1. Jak sam ogarnę debugger to spoko :)

2. NAPRAWIONO!

3. NAPRAWIONO!

4. Osobiście sam piszę jedynie pod craftbukkita i jakoś nic się nie dzieje, jak męczyłęm się z szukaniem bukkita... żadnej różnicy...

5. NAPRAWIONO!

6. NAPRAWIONO!

7. NAPRAWIONO!

8. NAPRAWIONO!

9. NAPRAWIONO!

10. NAPRAWIONO!

11. NAPRAWIONO!

12. NAPRAWIONO!

13. No nie działa, jakkolwiek tego nie zrzutuję dalej jest źle...

14. NAPRAWIONO!

15. NAPRAWIONO!

16. Ufff koniec xD

Na a zgadnij dlaczego pkt 13 nie działa? :D

Bo piszesz na Craftbukkicie zamiast bukkcie, zmień i poczuj magie świąt! :>

 

Ale brawo że poprawiłeś, ide poczyać, może znajde coś nowego :D

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

a ne moze byc tak?

extends JavaPlugin zamiast implements JavaPlugin ?

bo przy 1 jest git a przy 2 error :D

 

 

I piszesz w 2 dziale o tym ze trzeba miec bukkita a potem o kopiowaniu craftbukkita Popraw to :D

Opublikowano

@andych1 Niestety poradnik leży pod względem przyjętych reguł. Fajnie, że chcesz pomóc innym tworzyć pluginy, ale jeszcze dużo musisz się nauczyć.

 

  1. System.out... - Stosuje się tylko do ewentualnych breakpointów, nie do logów, które powinny być zarządzane klasą loggera <? extends JavaPlugin>.getServer().getLogger() bądź Bukkit.getLogger()
  2. PluginLoader bądź PluginManager automatycznie wyświetli odpowiednie powiadomienia dotyczące ładowania pluginu
  3. Każda metoda przesłaniana - dziedziczona - od javy 1.5 powinna być opatrzona adnotacją @Override,\
  4. To jest ukryta treść, proszę
    IMO kod zapisany w taki sposób jest nieczytelny
  5. To jest ukryta treść, proszę
    - false wydrukuje usage, warto z tego korzystać
  6. Permissions w komendach? Tylko w przypadku komend z argumentami, które wymagają osobnych praw, normalnie można pokusić się o permission: w plugin.yml a także cmd.setPermissionMassage(String failure)
  7. Warto wspomnieć o taskach i kolejkach podczas zmiany bloków, gdyż ze względu na czasochłonność obliczania światła wykonanie wielu operacji na raz spowoduje wstrzymanie głównego wątku.
  8. Gdy będziesz opisywać wielowątkowość zajrzyj w kod craftbukkita i zobacz, które metody są thread-safe, a które nie
Opublikowano

 

@andych1 Niestety poradnik leży pod względem przyjętych reguł. Fajnie, że chcesz pomóc innym tworzyć pluginy, ale jeszcze dużo musisz się nauczyć.

 

  1. System.out... - Stosuje się tylko do ewentualnych breakpointów, nie do logów, które powinny być zarządzane klasą loggera <? extends JavaPlugin>.getServer().getLogger() bądź Bukkit.getLogger()
  2. PluginLoader bądź PluginManager automatycznie wyświetli odpowiednie powiadomienia dotyczące ładowania pluginu
  3. Każda metoda przesłaniana - dziedziczona - od javy 1.5 powinna być opatrzona adnotacją @Override,\
  4. To jest ukryta treść, proszę
    IMO kod zapisany w taki sposób jest nieczytelny
  5. To jest ukryta treść, proszę
    - false wydrukuje usage, warto z tego korzystać
  6. Permissions w komendach? Tylko w przypadku komend z argumentami, które wymagają osobnych praw, normalnie można pokusić się o permission: w plugin.yml a także cmd.setPermissionMassage(String failure)
  7. Warto wspomnieć o taskach i kolejkach podczas zmiany bloków, gdyż ze względu na czasochłonność obliczania światła wykonanie wielu operacji na raz spowoduje wstrzymanie głównego wątku.
  8. Gdy będziesz opisywać wielowątkowość zajrzyj w kod craftbukkita i zobacz, które metody są thread-safe, a które nie

 

co do 4 to się nie zgodze :D ustawienia co do komend te domyślna zawsze mnie wkur...

wole napisać własną wiadomość, z tym że dla ulatwienia mam metode ktora automatycznie wysyla wiadomość do celu i zwraca prawde bo ładniej wyglada:

To jest ukryta treść, proszę

niż robienie jeszcze dodatkowego returna.

 

Nie wnikam gdzie zjedłes 5 i 6 pkt

 

Ale z 7 to samo co z 4

 

 

A 2 pkt nie istotny :D wiadomość na wyłączeniu może i kompletne głupia, ale przy większym pluginu warto dodać coś podczas uruchamiania, by użytkownik wiedział że to się laduje, a nie zacieło :F

 

 

Logger jest średnio istotny możesz nawet wysyłać wiadomości po prostu do konosli i wyjdzie na to samo a nawet masz kolorki xD

co najwyżej zgodze się że systemowy najlepiej nadają się do debugu, wygodniej i szybciej.

 

 

Ciesz się że nie widziałeś tego przed jego edycją xD!

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

 

 

A 2 pkt nie istotny :D wiadomość na wyłączeniu może i kompletne głupia, ale przy większym pluginu warto dodać coś podczas uruchamiania, by użytkownik wiedział że to się laduje, a nie zacieło :F
Plugin domyślnie łądując się wyświetla odpowiednią wiadomość w konsoli.

 

 

 

 

co do 4 to się nie zgodze :D ustawienia co do komend te domyślna zawsze mnie wkur...

wole napisać własną wiadomość, z tym że dla ulatwienia mam metode ktora automatycznie wysyla wiadomość do celu i zwraca prawde bo ładniej wyglada:

if (args.lenght < 1)
return Utils.fixAndSend("Coś tam &5 coś tam ", sender)

Ależ wiem, tylko mówię, że przy tego typu komendach jest to idealne, przy większych komendach można pokusić się o własną wiadomość.

 

 


 

Logger jest średnio istotny możesz nawet wysyłać wiadomości po prostu do konosli i wyjdzie na to samo a nawet masz kolorki xD

co najwyżej zgodze się że systemowy najlepiej nadają się do debugu, wygodniej i szybciej.

Logger jest istotny, szczególnie, że jeżeli wystąpi gdzieś problem to później można zlokalizować kiedy i jak. Po coś te wiadomości tam się pokazują nie?

Opublikowano (edytowane)

Plugin domyślnie łądując się wyświetla odpowiednią wiadomość w konsoli.

 

 

 

 

Ależ wiem, tylko mówię, że przy tego typu komendach jest to idealne, przy większych komendach można pokusić się o własną wiadomość.

 

 

Logger jest istotny, szczególnie, że jeżeli wystąpi gdzieś problem to później można zlokalizować kiedy i jak. Po coś te wiadomości tam się pokazują nie?

 

Z loggerem chodzi o to że średnio ma znaczenie którego sposobu użyjesz :>

 

 

plugin wywala jedną wiadomość gdy zaczyna sie ładować, a jak ładujesz 200KB configu, do tego inicjujesz 30 eventów, 50 komend, to warto na końcu powiedzieć

"Kurwa... w końcu się załadowało" :D

PS: większość dev dodaje takie wiadomości :P czasami nawet stopniowe przy naprawdę dużych projektach :>

I czasami chcesz też coś dodać

np:

Plugin załadowany, wykryto 40 czegoś-tam

Edytowane przez Karolina_666

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano (edytowane)

Wtedy tak, ale to też w Loggerze, Poza tym

 


[11:37:16] [server thread/INFO]: [mAuth-bukkit] Loading mAuth-bukkit v1.0-SNAPSHOT

[11:37:19] [server thread/INFO]: [mAuth-bukkit] Enabling mAuth-bukkit v1.0-SNAPSHOT

[11:37:20] [server thread/INFO]: Done (3,718s)! For help, type "help" or "?"

 

Nie powiesz mi, że nie jest to wystarczająca ilość wiadomości. Jeśli chcemy poinformować użytkownika o czymś to możemy, ale w Loggerze, aby możliwy był debug.

 

 


[11:37:19] [server thread/INFO]: [mAuth-bukkit] Established connection to bungee cord

 

lub

 


[11:37:19] [server thread/INFO]: [mAuth-bukkit] Couldn't find bungee cord proxy, returning to standard authorization

a nie

 


Couldn't find bungee cord proxy, returning to standard authorization

 

Logger sam zadba o dodanie TimeStampa i prefixu

 

Poza tym System.out nie zapisze się w server.log

Edytowane przez maciekmm
Opublikowano (edytowane)

Wtedy tak, ale to też w Loggerze, Poza tym

 

 

Nie powiesz mi, że nie jest to wystarczająca ilość wiadomości. Jeśli chcemy poinformować użytkownika o czymś to możemy, ale w Loggerze, aby możliwy był debug.

 

 

 

lub

 

a nie

 

 

Logger sam zadba o dodanie TimeStampa i prefixu

 

Poza tym System.out nie zapisze się w server.log

Hyyym, polecam ci przetestować to co piszesz :D

System.out.print("dupa dupa dupa :*")

[14:26:32 INFO]: dupa dupa dupa :*

 

Bukkit.getLogger().log(Level.INFO, "fgdfgdfgdrgh");

[14:26:32 INFO]: fgdfgdfgdrgh2

 

 

W logach tez wszystko śmiga :<

[14:26:32] [server thread/INFO]: fgdfgdfgdrgh

[14:26:32] [server thread/INFO]: dupa dupa dupa :*

Edytowane przez Karolina_666

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Hyyym, polecam ci przetestować to co piszesz :D

System.out.print("dupa dupa dupa :*")

[14:26:32 INFO]: dupa dupa dupa :*

 

Bukkit.getLogger().log(Level.INFO, "fgdfgdfgdrgh");

[14:26:32 INFO]: fgdfgdfgdrgh2

 

 

W logach tez wszystko śmiga :<

[14:26:32] [server thread/INFO]: fgdfgdfgdrgh

[14:26:32] [server thread/INFO]: dupa dupa dupa :*

To jest ciekawe, bo u mnie wiadomości z System.out nie zapisują się w logu i nie posiadają timestampa.

  • 1 miesiąc temu...
  • 2 tygodnie później...
  • 2 tygodnie później...
  • 2 tygodnie później...
Opublikowano

To jest kompletnie bez sensu :D

To jest ukryta treść, proszę

Po co ta klasa public class EnumEnchanter { .... kompletnie jest tutaj nie potrzebna :D

To jest ukryta treść, proszę

Jak bd miał 200 wartości też będziesz tak jechał?

Masz kilka możliwości:

- Zapisać level w każdym z elementów enum i wtedy szukać w pętli.

- Stworzyć mapkę która podczas 1 użycia sama ustali te levele i wtedy pobrać z mapki.

 

 

 

Czemu konstuktor bez oznacznika widoczności? bo jest obłędem, bo wyobrażacie sobie prywatny konstruktor?

Enum ma konstuktor zablokowany, ale sam brak oznacznika widoczności... oznacza widoczność domyślną - klasa/zmienna/metoda widoczna w całej paczce.

 

Prywatny konstruktor? w wielu miejscach:

- Jak nie chcesz by ktoś inny lub ty jak zapomnisz, tworzył nowej instancji tej klasy z poza niej. (szczególnie jak jest to "klasa w klasie", wtedy czasami nie potrzebujemy jej w innych miejscach)

- Jak klasa jest statycza - nie zawiera żadnych danych nie-statycznych i ogólnie nie ma sensu używać jej jako obiektu np klasa "Utils"

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...