Skocz do zawartości
  • Dołącz do społecznoś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

Rekomendowane odpowiedzi

Opublikowano

Sektory mają w sobie synchronizacje (chat, inventory, potki), nie zawierają gildii albo innych toolsów.

Większość konfiguracji jest po stronie proxy, wszystkie sektory synchronizują swoją konfigurację z bungee.

 

Z oczywistego powodu większość pluginów nie będzie działać z sektorami bez modyfikacji. Jeśli potrzebujesz edycji jakiegoś pluginu - PW.

Dostępne jest API (sczegóły w repo) - serializacja danych, możliwość wysyłania pakietów pomiędzy serwerami, dostęp do Redisa oraz centralnej bazy MySQL

 

Wymagania: Redis, MySQL

Wspierane wersje MC: 1.8.x - 1.12x

GitHubhttps://github.com/mikigal/Bytectors

Releasehttps://github.com/mikigal/ByteSectors/releases


sygnatura_mpc.png

 

Opublikowano (edytowane)

Gratki, lecz szkoda trochę, bo teraz znowu będzie atak izihardcorów

 

@edit Ten Twój configapi ciekawy jest i mi posłuży do niecnych celów, dzienks i gratula

Edytowane przez Ekrahb
mikigal lubi to
Opublikowano

Przejrzałem kod i wygląda spoko. Jednak ja te managery przerobiłbym na normalne obiekty. To globalne przechowywanie danych to lipa. No i mam też kilka kwestii, które warto rozwiązać.

 

https://github.com/mikigal/ByteSectors/blob/master/Client/src/main/java/pl/mikigal/bytesectors/client/util/PlayerTransferUtils.java#L41-L56

 

Po co cała ta zabawa w serializację, a potem deserializację tego wszystkiego, skoro Minkrafty to już robią. Player.dat zapisuje wszystko co jest potrzebne normalnie w pliku. Wystarczy na EntityPlayer wywołać metodę zapisu do NBTCompound a potem wrzucić to do bazy i Redisa. To też serializuje wtedy wszystkie klucze z PersistentDataContainer, więc jest kompatybilne z automatu z innymi pluginami (chociażby z radiacją z kwadratowej, bo tam efekt lugoli leci właśnie po PersistentDataContainer). Tu dochodzimy do drugiej kwestii - dane latają sobie pubsubem Redisowym bez żadnego sensownego backupu. cloudyUniverse, sektory ze skafa mają bardzo fajną funkcję zapisu gracza do bazy co n czasu i przy każdym potencjalnym momencie utraty/uszkodzenia danych - wyjście z sektora, wejście na sektor, wyjście z serwera, etc. Nawet gdyby w pluginie byłby jakiś bug i coś się wywaliło to można gracza całego przywrócić do dowolnego momentu czasu.

 

https://github.com/mikigal/ByteSectors/blob/master/Client/src/main/java/pl/mikigal/bytesectors/client/util/SerializationUtils.java#L73

 

To jest MEGA niebezpieczne. Wszelkie błędy po prostu ignorujesz i drukujesz wyjątek do standardowego wyjścia. Nawet nie logujesz jakiego to dotyczy gracza. Gdy coś się zwali, a uwierz mi, łatwo można się na takich rzeczach naciąć to nie jesteś w stanie uwierzyć graczowi, że nagle zniknął mu ekwipunek. Przychodzi, mówi, że ma pusty ekwipunek, patrzysz logi, a tam jakiś stack trace nie wiadomo skąd. Nawet gdy dojdzie do takiej sytuacji to właśnie masz do tego backupy danych w bazie. Rozwiązaniem jest na pewno prawidłowa obsługa wyjątków, czyli żadnych catchów aż do momentu obsługi tego (listener wejścia na serwer, etc). Tam dopiero nie pozwalasz mu nawet wejść na serwer do czasu rozwiązania sprawy.

 

Osobiście bym wiele rzeczy inaczej zrobił 😛 Chociażby sektor to powinien być region, który powinien być abstrakcją. Tam byłoby wiele implementacji czy to jest jakiś rectangle, czy unia, czy region Anvil, czy chunk, itd itp. Do tego warstwy siatki - tzn. możemy mieć sektory w siatce np 4x4, ale spawn może być poza tą siatką na wyższej warstwie. W każdym razie jest to chyba teraz najlepszy soft na sektory na GitHubie. 😛

Q8eOMob.png

  • 2 miesiące temu...
  • 2 miesiące temu...

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ę...