Skocz do zawartości

Karolina_666

Postwriter
  • Postów

    2 905
  • Rejestracja

  • Ostatnia wizyta

3 obserwujących

Metody kontaktu

  • GG
    Odchodzę :)

O użytkowniku

  • Płeć
    Kobieta

Ostatnie wizyty

14 920 wyświetleń profilu
  1. może i troche racji jest, jednak są też objaśnienia jako-tako, + nie ma tu jakoś specjalnie dużo, czyste podstawy używania bukkita. Ale fakt, możnma by to zrobić inaczej
  2. nie zaimportowałeś :P Spr wcisnąć ctrl + shift + O :>
  3. to ma być extends JavaPlugin i musisz to importnąc
  4. ale to jest prawidze UUID :> generuje sie ja na podstawie nicku, tak jest w kodzie mc :P
  5. nie czeba? skad taki pomysł? np teki pex działa bez problemu z UUID nawet bez premki :> generujesz UUID z "OfflinePlayer:<nick>" i masz identyczne UUID jakie ma każdy gracz premium :P
  6. Ogólnie to poradnik zaczyna nawet mi się w miarę podobać :P Ale masz tam rodział o własnej klasie "stats" jak dla mnie przydało by się też coś o tworzeniu własnych "immutable"/"niezmiennych" obiektów (no właśnie, zabrakło mi w tym rozdziale słowa "własny obiekt" a nie "własna klasa") I opisane do czego moga się przydać, jak powinna taka klasa wyglądać by była wygodna, i dlaczego czasem warto je tworzyć, czyli jaki może byc problem z zwykłym obiektem. Ale dalej jest dużo błędów jak np: LivingEntity killer = entity.getKiller(); Killer zawsze jest graczem. i ten wysyp literówek w jednym zdaniu :P popraw bo dziwnie się to czyta i było by bardziej zrozumiałe "Teraz informujemy go" czy coś W switch powinno się używać też wartości default, mozna tam dac nawet tylko break; ale i tak powinno to tam być :P Reszty nie czytam bo mi się już nie chce No i już kiedyś czytałam
  7. tja :P oczywiście jak w clazz1 były by jakieś zmienne/metody to już mogło by mieć to jakiś sens :P ale jak są tylko w clazz2 to tak niezbyt
  8. a czemu nie? mozna oczywiście w klasie, ale jak to ma jakiś sens bo robienie klasy w innej pustej klasie, raczej niezbyt
  9. No po co jest tam ta klasa, jest w niej tylko ten enum, więc po co ta klasa na około enuma?
  10. To jest kompletnie bez sensu public class EnumEnchanter { public enum Enchanter { BABY_ENCHANTER(0), YOUNG_ENCHANTER(100), MEDIUM_EXPERIENCED_ENCHANTER(250), EXPERIENCED_ENCHANTER(1000), ENCHANT_MASTER(2500); private int value; Enchanter(int i) { value = i; } public int getValue() { return value; } public Enchanter next() { if (ordinal() < Enchanter.values().length - 1) { return Enchanter.values()[ordinal() + 1]; } return null; } public static Enchanter getLevel(int value) { if (ENCHANT_MASTER.value>value) { return ENCHANT_MASTER; } else if (EXPERIENCED_ENCHANTER.value>value) { return EXPERIENCED_ENCHANTER; } else if (MEDIUM_EXPERIENCED_ENCHANTER.value>value) { return MEDIUM_EXPERIENCED_ENCHANTER; } else if (YOUNG_ENCHANTER.value>value) { return YOUNG_ENCHANTER; } else { return BABY_ENCHANTER; } } }; } Po co ta klasa public class EnumEnchanter { .... kompletnie jest tutaj nie potrzebna public static Enchanter getLevel(int value) { if (ENCHANT_MASTER.value>value) { return ENCHANT_MASTER; } else if (EXPERIENCED_ENCHANTER.value>value) { return EXPERIENCED_ENCHANTER; } else if (MEDIUM_EXPERIENCED_ENCHANTER.value>value) { return MEDIUM_EXPERIENCED_ENCHANTER; } else if (YOUNG_ENCHANTER.value>value) { return YOUNG_ENCHANTER; } else { return BABY_ENCHANTER; } } 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. 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"
  11. Hyyym, polecam ci przetestować to co piszesz 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 :*
  12. 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" 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
  13. co do 4 to się nie zgodze 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) 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 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 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ą !
  14. Na a zgadnij dlaczego pkt 13 nie działa? Bo piszesz na Craftbukkicie zamiast bukkcie, zmień i poczuj magie świąt! :> Ale brawo że poprawiłeś, ide poczyać, może znajde coś nowego
  15. Czyste konwencje javy, nie jest to wymagane do życia, ale jednak każdy powinien przynajmniej starać się ich używać Sama często zrobie coś nie koniecznie jak się powinno, ale co tam, dalej się uczę, bo nikim wielkim nie jestem :P PS: jak szukacie wielkich to polecam zobaczyć jak wygląda plugin ProtocolLib tam to dopiero jest bajka I edycja kodu bukkita w runtime... PS2: jak piszezsz na gg... to napisz a nie zapraszasz ja w zaproszenia nie wchodzę, za dużo tego. i taki link: http://www.oracle.com/technetwork/java/codeconventions-150003.pdf http://www.oracle.com/technetwork/java/codeconv-138413.html http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
×
×
  • Dodaj nową pozycję...