pdinklag / MinecraftStats

A Minecraft player statistics browser for the web - supports 1.13 and later!
https://discord.gg/brH5PGG8By
Other
227 stars 53 forks source link

Just installed but isn't showing every player #45

Closed lukeeexd closed 5 years ago

lukeeexd commented 5 years ago

Hi, just installed this and worked straight away which I'm amazed about. however it isnt showing every player in the stats. I ran update.py first and it loaded 2 people, ran it again and loaded 1 more. Theres been 259 people who have joined the server (map is 2 weeks old) do they all get added few at a time or ?

https://tws-mc.com/stats/

Edit: it seems it will load someone once they login. It doesnt load anyone that was logged already when installed. Am I correct in saying this?

Edit2: How can I get a space in server name when doing --server-name. If I add a space to server name it wont work

pdinklag commented 5 years ago

Edit: it seems it will load someone once they login. It doesnt load anyone that was logged already when installed. Am I correct in saying this?

Nope, anybody should be eligible really. However, did all 259 people join in the last week? If they are from old server versions (before 1.13), they may not appear until they log in and their data is upgraded by the server. Or did you maybe use a --min-playtime and they simply didn't play that long?

How can I get a space in server name when doing --server-name. If I add a space to server name it wont work

Put it in quotes, e.g., --server-name "A name with spaces".

lukeeexd commented 5 years ago

Edit: it seems it will load someone once they login. It doesnt load anyone that was logged already when installed. Am I correct in saying this?

Nope, anybody should be eligible really. However, did all 259 people join in the last week? If they are from old server versions (before 1.13), they may not appear until they log in and their data is upgraded by the server. Or did you maybe use a --min-playtime and they simply didn't play that long?

How can I get a space in server name when doing --server-name. If I add a space to server name it wont work

Put it in quotes, e.g., --server-name "A name with spaces".

Server was started on 1.14.2 everyone joined in the past 2 weeks yes. It's not loading some people. Min playtime is 60mins, but the people have over that I'll do the quotes thanks. Amazing thing you made here, really impressed with it

pdinklag commented 5 years ago

Amazing thing you made here, really impressed with it.

Thank you! :-)

Server was started on 1.14.2 everyone joined in the past 2 weeks yes. It seems to load them once they relogged if I installed the stats while they were online so no issues there.

Hm, it's still strange and shouldn't be this way. Is there any log output that may hint that something's wrong?

What the script does to find players first is scan the server's usercache.json to map UUIDs and names. Are the affected players in that JSON file? If they aren't, they will be added once they relog, so that may be one cause.

After that, the script checks for statistic JSON files for each known UUID, but any player who ever joined the server will have a JSON file, so this shouldn't fail.

lukeeexd commented 5 years ago

Amazing thing you made here, really impressed with it.

Thank you! :-)

Server was started on 1.14.2 everyone joined in the past 2 weeks yes. It seems to load them once they relogged if I installed the stats while they were online so no issues there.

Hm, it's still strange and shouldn't be this way. Is there any log output that may hint that something's wrong?

What the script does to find players first is scan the server's usercache.json to map UUIDs and names. Are the affected players in that JSON file? If they aren't, they will be added once they relog, so that may be one cause.

After that, the script checks for statistic JSON files for each known UUID, but any player who ever joined the server will have a JSON file, so this shouldn't fail.

I edited my comment as you were replying oops. "everyone joined in the past 2 weeks yes. It's not loading some people. Min playtime is 60mins, but the people have over that"

lukeeexd commented 5 years ago

Ok just checked. Someone logged in, i ran update.py and they didnt appear. They relogged and i ran it again and they appeared. After running it the second time I see this "updating skin for xX_Brassman_Xx ... "

pdinklag commented 5 years ago

Hm well, the only idea I have right now is that the players aren't contained in the usercache.json for some reason and they only appear in there after relogging. Could you check if there are any players who appear in the usercache.json but not in the stat browser?

lukeeexd commented 5 years ago

Where is that file located? It’s not located in root of the folder

pdinklag commented 5 years ago

It should be in your server's folder - same as the Minecraft server jar, not Minecraft Stats.

lukeeexd commented 5 years ago

The guy who isn’t displayed isn’t in usercache.json. His name is weedsmoker419

pdinklag commented 5 years ago

OK, then that's the issue. That file is maintained by the server to resolve player IDs to names. Minecraft Stats uses it for the same purpose.

If somebody doesn't show up there and isn't in the stats database yet, he won't be found until he logs into the server and is added to that file (possibly with some delay as for your Brassman example).

The cache entries usually a take a few weeks to expire, so not sure why your players aren't in there anymore. Maybe the file was deleted for some reason? Anyway, it's nothing that I can fix as it's part of the Minecraft server. You'll have to wait for your players to relog then. :\

(I could get the player name for an ID from the Mojang servers like I do for skins, but that would be too expensive to do every time update.py is used)

lukeeexd commented 5 years ago

OK, then that's the issue. That file is maintained by the server to resolve player IDs to names. Minecraft Stats uses it for the same purpose.

If somebody doesn't show up there and isn't in the stats database yet, he won't be found until he logs into the server and is added to that file (possibly with some delay as for your Brassman example).

The cache entries usually a take a few weeks to expire, so not sure why your players aren't in there anymore. Maybe the file was deleted for some reason? Anyway, it's nothing that I can fix as it's part of the Minecraft server. You'll have to wait for your players to relog then. :\

(I could get the player name for an ID from the Mojang servers like I do for skins, but that would be too expensive to do every time update.py is used)

Nah I never deleted it . Is there a way to add people manually? Also thanks for the fast replies, appreciate the support

pdinklag commented 5 years ago

Is there a way to add people manually?

Not yet, but I opened #46 for that (name may be a bit cryptic :-D ). Won't get to implementing it before next week I'm afraid.

lukeeexd commented 5 years ago

They have shown up now