BungeeCord - duszki na serwerze

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.