Kukubaczek | 2021-02-17 10:31:10 UTC | #1
Ostatnio zacząłem dopracowywać sektory i pojawił się pewien znaczący problem. Mianowicie po wylogowaniu się gracza często się zdarza, że zostaje “duszek” na serwerze. Czyli niby jest gracz online, ale w praktyce nie powinno go tam być. Jak to rozwiązać? Używam najnowszego Travertine (fork BungeeCord’a) oraz najnowszą wersje spigota (1.10.2).
Szymon | 2016-10-24 14:43:39 UTC | #2
Nie powiedziales nam jak dzialaja twoje sektory to jak mamy Ci odpowiedziec.
Nieznajomy11 | 2016-10-24 17:16:01 UTC | #3
Gdzieś zostają pakiety w bungee. Musiałbyś sprawdzić w jakim dokładnie przypadku się tak dzieje, to i pewnie dowiesz się mniej więcej dlaczego.
Kukubaczek | 2016-10-24 17:49:34 UTC | #4
No normalnie ;-; Dzielą mapę na kilka podserwerow, synchronizacja gildii itp odbywa się za pomocą Redisa i co mam więcej powiedzieć?
Kukubaczek | 2016-10-24 17:50:15 UTC | #5
Spróbuje przeanalizować to, ale chyba poprawię to po swojemu (o ile się uda tak jak planuje to zrobic).
Szymon | 2016-10-24 21:23:58 UTC | #6
nie potrzebuje wiedzieć jak działają całe sektory tyko jak działa twoje wylogowywanie. Komunikacja pomiędzy serwerami. Może masz jakieś błędy, których nie wyświetlasz cokolwiek co mogłoby nam pomóc przeanalizować i pomóc Ci.
Czasem ludzie oczekują od kogoś pomocy, a tak na prawdę nie pozwalają, aby ktoś tej pomocy im udzielił (czasem też tak mi się zdarza).
Kukubaczek | 2016-10-25 14:28:58 UTC | #7
To jest wszystko co robię przy wylogowaniu się na bungee:
> @EventHandler > public void logout(PlayerDisconnectEvent e){ > User u = Storage.getUser(e.getPlayer()); > u.getGuild().switchToOfflineMember(u); > }
Timo | 2016-10-25 14:31:13 UTC | #8
Może w samym silniku zostają jakieś pliki o graczu, nie w serwerze, tj. coś jak wywala kogoś za connection lost to jeszcze przez pare sekund zostaje na serwerze.
Kukubaczek | 2016-10-25 14:32:12 UTC | #9
Te duszki zostają w pewnym sensie na stałe. Siedzą tak i siedzą :/ Zablokuję zapis wszelkich danych przez spigota o graczu, ponieważ i tak za to odpowiada redis.
anon82750602 | 2016-10-25 14:56:37 UTC | #10
Masz connection-throttle ustawione?
Kukubaczek | 2016-10-25 17:01:14 UTC | #11
Bungee:
connection_throttle: 4000
Bukkit:
connection-throttle: 0
anon82750602 | 2016-10-25 22:13:55 UTC | #12
Powinno być -1 wg dokumentacji… -> https://www.spigotmc.org/threads/1-8-1-10-bungeecord.392/
A tak wgl sprawdz czy na czystym Bungee wystepuje…
Kukubaczek | 2016-10-26 04:59:51 UTC | #13
Zmieniłem na -1 na bukkit i nadal to samo, czyste Bungee sprawdzę wieczorem, tylko dodam, że inny mój serwer mcplay.pl też korzysta z tego forka i nie ma tego problemu :/
Nieznajomy11 | 2016-10-26 12:58:35 UTC | #14
Ten sam silnik dla serwerów sektorów, też używa tego pluginu?
Kukubaczek | 2016-10-26 18:02:16 UTC | #15
W sensie ten kod co podawałem? Na sektorach są oczywiście inne pluginy
Nieznajomy11 | 2016-10-26 18:28:23 UTC | #16
Chodzi o to, czy obie sieci używają tych samych silników trybów i tych samych sektorów.
Kukubaczek | 2016-10-27 05:28:41 UTC | #17
Obie używają tego samego forka Bungee, tamten serwer nie ma sektorów, a i tamten ma rozne silniki trybów.
Nieznajomy11 | 2016-10-27 13:55:42 UTC | #18
Czyli problemu musisz szukać raczej konkretnie w sektorach. Sprawdziłbym linijka po linijce co się wykonuje przy wyjściu w tym pluginie, dorobił jakiś debug. I porównał czym się różni normalne wyjście a takie z “zostaniem na serwerze”.
anon82750602 | 2016-10-27 19:46:57 UTC | #19
Cos zwaliles przy pakietach ;v
Gdzies widzialem fix na to… trzeba ukryc i pokazac gracza i powinien zniknac.
system | 2021-02-17 10:31:33 UTC | #20
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.