Skocz do zawartości

GotoFinal

Użytkownik
  • Zawartość

    282
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    5

Ostatnia wygrana GotoFinal w dniu 16 Kwiecień

Użytkownicy przyznają GotoFinal punkty reputacji!

4 obserwujących

O GotoFinal

  • Tytuł
    Wyjadacz I

Informacje

  • Płeć
    Mężczyzna
  • Hobby
    Programowanie
  • Nick w MC
    GotoFinal

Ostatnie wizyty

949 wyświetleń profilu
  1. GotoFinal

    Bungeecord getProxiedPlayers

    wat? xD BungeeCord to proxy do serwerów minecrafta i to jest osobna aplkacja i wtedy musisz napisać plugin pod bungeecorda - nie jest to żaden silnik. I tak samo bukkit jest silnikiem i osobną aplikacją pod którą można pisać pluginy. Nie możesz sobie tak losowo łączyć obu API...
  2. GotoFinal

    Sprawdzenie czy gracz jest premium

    tylko po co robić to samemu? użyj fast login + ma też kod open source to jak coś nie dziala jak ty chcesz to możesz sobie edytować, ale w 90% przypadków wystarczy zmienić samą konfiguracje, a pozostałe 10% to głównie podczepienie wlasnego pluginu logowania, ale wtedy też chyba nie trzeba edytować pluginu tylko dopisać wsparcie w pluginie na logowanie lub dodatkowym osobnym pluginie. A w dużym skrócie sprawdzanie polega na: 1. Już w momencie handshake i pierwszego pakietu logowania sprawdzeniu czy nick gracza który chce wejść należy do konta premium (w bungee jest event w tym momencie) 2. Jeśli należy to jest szansa że gracz też jest premium, dlatego przeprowadza się autoryzację - taką samą jak normlanie wykonuje serwer z online-mode true (bungee ma prostą metodę connection.setOnlineMode i samo osobie ogarnie autoryzacje) 3. Jeśli nie należy to na pewno jest to gracz z pirackim klientem dlatego nie można przeprowadzić autoryzacji bo klient się rozłączy Oczywiście dochodzi masa problemów do przemyślenia: Co robić z UUID, co jak gracz premium zmieni nick na nick kogoś to już gra jako pirat itd itp.
  3. GotoFinal

    Bład z List, ArrayList

    Poczytaj też o hash setach no i nie robi się takich operacji w konstruktorach bo to zła praktyka, możesz zrobić statyczną metodę w tych utilsach co tworzy obiekt RawBlock i dodaje do listy, ale nie w jego konstruktorze. Nie ma też sensu sperawdzać czy obiekt jest w kolekcji by go usunąć, bo usunięcie i tak musi to sprawdzić jeszcze raz. A w metodzie debug możesz po prostu przeiterować po całej liście a potem za pętlą ją wyczyścić metodą .clear, nie musisz też wtedy liczyć amount tylko zwrócić rozmiar listy przed wyczyszczeniem. Bo nie można edytować listy po której się iteruje (no to dodatkowe zabezpieczenie javy przed nieprawidłowym używaniem wątków itd, są kolekcje co to wspierają większym kosztem pamięciowym/wydajnościpwym) + można to robić w szczególnych przypadkach, np klasa Iterator ma metod removę oraz można iterować po indexach
  4. GotoFinal

    dodanie licencji do pluginy

    zmień kolegów. Tak to rozwiązanie podałem. Ale możesz też mu dać osobną wersję która zadziala tylko na jego serwerze z jego IP.
  5. GotoFinal

    dodanie licencji do pluginy

    takie zabezpieczenia mają mały sens, tylko utrudniają życie klientowi bo musi mieć połączenie z twoim serwerem gdzie to jest sprawdzane a nie zawsze się chce by dany serwer miał wgl dostęp do świata zewnętrznego tylko wszystko leciało przez sieć wewnętrzną, albo zwyczajnie żaden serwer nie ma 100% uptime. A usunięcie takiego zabezpieczenia to i tak tylko chwila. No a tak to te proste polegają na prostym ifie który np wysyła zapytanie po http czy dany klucz licencji jest poprawny i wtedy od strony twojego serwera możesz tez monitorować czy tych serwerów z jednym kluczem nie jest za dużo i w razie czego wyłączyć dany klucz.
  6. GotoFinal

    Doubluje się :v

    Pewnie event wywołuje się więcej niż raz, np ze względu na to jak minecraft obsługuje obie ręce https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/player/PlayerInteractEntityEvent.html#getHand-- Musisz sprawdzić czy użył głównej ręki. A tak to nie ładuj plików w takich eventach przy każdym kliknięciu... wszystkie takie dane powinieneś załadować na starcie pluginów do odpowiedniej struktury obiektów - inaczej każde kliknięcie będzie zatrzymywać serwer na czas odczytu pliku.
  7. GotoFinal

    Problem z chatem...

    bo klasa listenera musi implementować Listener i trzeba zarejestrować listener
  8. GotoFinal

    Nametag

    nie da się zwiększyć tego limitu, ale można go obejść tworząc Scoreboard i Team i wtedy można dodać do team gracza i ustawić w jego team 16 znakowy prefix i suffix. Co daje ci 16 znaków + nick + 16 znaków, a jak postarasz się bardziej to można wykorzystać całość 48 znaków
  9. GotoFinal

    Skrypty a java/c++

    trudno powiedzieć... skrypty to bardzo ch... język który jest pełen dziwnych rozwiązań których się nigdy nie stosuje w normlanym kodzie i pewnie nawet funkcji nie tworzyłeś. No ale coś tam łatwiej na pewno będzie
  10. GotoFinal

    Vanish

    Ah, co do pkt piątego to chyba dodał to podczas edytowania postu, bo wcześniej zwyczajnie nie widziałem tam żadnego punktu piątego było 4 a potem 6 ;/ a kolizje powinien spectator jako tako ogarnąć. A EntityTargetEvent to no, średnio to działa, moby i tak będą go widzieć i np losowo zerkać i śledzić go wzrokiem - bo mają to w AI.
  11. GotoFinal

    Vanish

    ale to z czym dokładnie masz problem? Ogólnie pomyśl o gamemode spectatora, ułatwi sprawę. 1. Masz metodę .setInvulnerable lub możesz to zrobić tak samo jak 2. - lub spectator i samo dziala 2.Przecież jest Event EntityDamageEvent i EntityDamageByEntityEvent możesz tam sobie anulować wszelkie obrażenia, zadane lub otrzymane - lub spectator i samo dziala 3. średnio na jeża idzie to w pełni zrobic bez zabaw z NMS itd, ale możesz zmienić mu gamemode na spectatora - wtedy też rozwiążesz masę innych problemów jak to o zadawaniu obrażeń A tak to możesz dać collidable na false - i samo dziala 4. no jest event ItemPickupEvent - lub spectator i samo dziala 5. Nie ma punkty piątego. 6. Tutaj musisz ręcznie wykryć kliknięcie na skrzynkę Eventem PlayerInteractEvent i jeśli to otwieranie skrzynki to anulować i otworzyć własne inventory z taką samą zawartością co skrzynka - lub spectator i samo dziala 7. BlockBreakEvent i anulujesz co chcesz - lub spectator i samo dziala
  12. GotoFinal

    Licencja do Pluginu

    github też nie ma 100% uptime i czasem pada na kilka chwil lub nawet godzin. Można też pisać dla normalnych klientów co normlanie płacą i kupują razem z source code i mieć wszystko w dupie.
  13. GotoFinal

    Licencja do Pluginu

    ale pamiętaj że ominięcie takiej licencji to zawsze tylko chwila roboty... a dodatkowo utrudniasz używanie zwykłemu użytkownikowi co kupił ten plugin... bo nikt nie ma 100% uptime, VPS ci padnie i nagle nie mogą używać produktu który kupili.
  14. GotoFinal

    Pomoc przy prefixach

    testuj to na czystym mc, bo z tego błędu trudno coś zrozumieć bo pozmieniali nazwy klas. Ale wygląda na to że prefix ma więcej niż 16 znaków - a taki jest limit w mc.
  15. GotoFinal

    pytanie "on command"

    no to listener z tym eventem, ale tak to większość dobrych pluginów pozwala zmienić treść wiadomości w jakimś pliku konfiguracyjnym - esentials np ma chyba wszystkie wiadomości konfigurowalne.
×