Skocz do zawartości

kurwinoksik

Użytkownik
  • Ilość zawartości

    5
  • Rejestracja

  • Ostatnia wizyta

Ostatnie wizyty

Blok z ostatnimi odwiedzającymi dany profil jest wyłączony i nie jest wyświetlany użytkownikom.

Osiągnięcia kurwinoksik

Świeżak

Świeżak (1/13)

0

Reputacja

  1. Dziękuję za lekturę, do zamknięcia.
  2. Witam, słyszałem że zamiast rejestrowania tasków poleceniami bukkita lepiej użyć ScheduledExecutorService rozumiem że aby odpalić zadanie na nowym wątku trzeba użyć Executors.newSingleThreadScheduledExecutor() Ale przykładowo mam 4 tryby + proxy oraz mój procesor posiada 16 wątków i na jednym z serwerów odpalam taska który jest bardzo ciężki mianowicie aktualizacja danych graczy do bazy. Executors.newScheduledThreadPool(6) Czy to spowoduje jakieś obciążenia na innych trybach?
  3. Nie rozumiesz dlaczego napisałem ten post, plugin był pisany (max 10minut) po to aby zapytać czy poprawnie przekazuje i zapisuje dane w redisie. Nie planuje go nigdy rozbudowywać, taką metodą skończyłem go bardzo szybko nie marnując swojego czasu który sobie bardzo cenię Poza tym java jest językiem OOP co nie znaczy że nie możesz użyć statica. Nie zawsze twój kod będzie obiektowy bo po prostu się tak nie da. Co do lomboka to używam, tutaj akurat mi się zapomniało i wygenerowałem settery, tak btw kto pisze settery i gettery ręcznie w 2022 bruh.
  4. Nie wydaje mi się żeby kod był "bardzo słaby", to był pierwszy plugin z redisem więc bądź wyrozumiały ale tak poza tym to wszystko jest na swoim miejscu, wiadomo można by go ulepszyć - komenda jest tragiczna, tak samo kity w obiekcie można by zrobić w mapie ale nie skupiałbym się tutaj na kodzie, bo cały post dotyczył czego innego. No to robi aktualnie za baze danych, wyobraź sobie że wszystkie serwery padają i po włączeniu serwerów kity są zrestartowane, gracz znowu może je sobie odebrać. Dlatego pytałem czy warto je przechowywać w ten sposób. No tutaj masz racje, ten sposób nie wygląda korzystnie, lecz przerobiłem go na obiekt który konwersuje klucz-wartość to do mapy i mogę pobierać jak i wstawiać wartości po kluczu w bardzo łatwy sposób. Dzięki za opinie. Czekam na więcej
  5. Hej wszystkim jestem tutaj nowy. Ostatnimi czasy zainteresowałem się redisem, spodobało mi się samo działanie bazy, poczytałem o samej bazie później o Redissonie i przyszedł czas na pierwsze kodzenie Moim celem było napisanie pluginu na kity, który przekazuje stan kitów gracza pomiędzy serwerami SkyBlock. Udało się ale nie jestem pewien czy w ten sposób powinno się robić tzn. Po pierwsze utworzyłem obiekt Kit który przechowuje stan kitów gracza. UUID oraz 3 pola long kiedy gracz będzie mógł odebrać dany kit. Następnie stworzyłem klasę KitUser która przechowuje te dane w mapie Mapa<UUID, Kit> Teraz przyszedł czas na klasę głowną. Załadowałem clienta, pobrałem mapę z bazy i utworzyłem listenera który będzie nasłuchiwał "wysyłanych wiadomości". Następnie zrobiłem metodę takeKit(Player, int) która jest wykonywana podczas użycia komendy /kit int, jak można zobaczyć, że drogą dedukcji wymyśliłem to tak, że na serwerze na którym gracz jest aktualnie, dane będą aktualizowane od razu, tak aby to były one od razu zaaktualizowane, bo jak patrzyłem to od wysłania do odbioru pakietu minęło 0-1ms, wiem że to mały czas no ale może być różnie, wole dmuchać na zimne Dodatkowo na serwerze którym gracz odbierze kit, obiekt Kita jest wstawiany do Redisowej mapy w formie Stringa tak aby gdy odpale inny serwer skyblock dane zawsze były dostępne. Następnie ładowanie użytkowników z owej mapy klasa KitUser metoda load(). Na koniec dokończyłem listenera który odbiera wiadomość, jeśli dane odbierze ten sam serwer na którym gracz odebrał kita to nie jest on odbierany, bo po co skoro wcześniej ustawiłem już te dane? Lecz jeśli nie jest to ten serwer to dane są ustawiane na drugim serwerze. No i teraz myślę czy to aby na pewno zostało zrobione poprawnie, bo z jednej strony można by operować na samych Mapach Redisa lecz myślę że nie jest to wygodne, przykładowo planuje tworzyć większe wtyczki, bardziej funkcjonalne i wtedy gdy obiekt będzie miał przykładowo 30 pól, no ciężko w takim scenariuszu operować na mapach. Link do kodu: https://github.com/kurwinoxik/kurwixonKits Chciałem zaczerpnąć wiedzy z publicznych projektów ale ciężko było znaleźć coś fajnego. Proszę o każdą wskazówkę dotyczącą co robię źle/co jest optymalniejsze/na co uważać i tak dalej. Oraz dodatkowo pytanie czy w ogóle dane powinno się trzymać w redisie na stałe? Słyszałem, że lepiej te dane zapisywać np.: w MySql ale nie wiem ile jest w tym prawdy. Za każdą odpowiedź bardzo dziękuje
×
×
  • Dodaj nową pozycję...