Essentials Database Bug
ACrispyCookie opened this issue ยท 16 comments
Information
Full output of /ess version
:
Essentials reloaded TeamCity
Server log (upload logs/latest.log
to Gist):
EssentialsX config (upload plugins/Essentials/config.yml
to Gist):
Details
When I do /seen {player} with a player who has joined it says "Warning: The user '{player}' has never joined this server." even though he has. That doesn't occur when the player's last join time was too lately, Also if I do /seen on a player that really hasn't joined the server (E.g. /seen Notch), it says "Error: Player not found". What is causing this and how can I prevent it from happening?
You're running the original Essentials, not EssentialsX - stop your server, delete your old Essentials jars, rename your config.yml
to config.yml.old
, download the equivalent EssentialsX jars from the build server and restart your server to update your userdata files. You can then copy any settings from your config.yml.old
back to your new config.yml
and kits.yml
.
See here for a full list of improvements in EssentialsX over Essentials.
Does this happen for all offline users or just specific ones?
Could you post the whole timestamps
section of the relevant userdata file?
lastAccountName: JohnnyCrafterGR
timestamps:
login: 1522950795580
lastteleport: 1522753804787
and the last time I checked (before changing jars) the problem occurred when a player's last join time was before some hours/1 day. After changing jars I don't know if it still occurs. I will wait until JohnnyCrafterGR joins again and makes its login timestamp change and I will check after some hours to see if it stills occurs.
I did /seen on my other admin and the problem doesn't occur.
His timestamp section:
lastAccountName: PowerfulCreeper1
timestamps:
login: 1522874409018
lastteleport: 1522875076735
logout: 1522875226860
The bug still occurs. For example I did /seen JohnnyCrafterGR which is an admin on my server and it says "Warning: The user 'johnnycraftergr' has never joined this server." even though he has. His UUID is '3011dc1d-ebb2-4f40-829f-3117a317ea8b' and if I check in the userdata folder the file exist and there is also the login timestamp in it.
Could you post the full output of /ess version
?
In addition, could you run /ess debug
, then post the full console output when the warning message is triggered?
/ess version:
09.04 12:25:56 [Server] INFO Server version: 1.8.8-R0.1-SNAPSHOT git-PaperSpigot-"8b18730" (MC: 1.8.8)
09.04 12:25:56 [Server] INFO EssentialsX version: 2.15.0.1
09.04 12:25:56 [Server] INFO PermissionsEx version: 1.23.4
09.04 12:25:56 [Server] INFO Vault version: 1.5.6-b49
09.04 12:25:56 [Server] INFO EssentialsXGeoIP version: 2.15.0.1
09.04 12:25:56 [Server] INFO EssentialsXSpawn version: 2.15.0.1
/ess debug:
There is no warning message that gets triggered the only message I get is : "Essentials 2.15.0.1 debug mode enabled"
Run /seen JohnnyCrafterGR
with debug mode enabled and paste the full console output, exactly as it appears in the console.
09.04 14:41:44 [Server] INFO ACrispyCookie issued server command: /seen JohnnyCrafterGR
09.04 14:41:44 [Server] INFO checking if ACrispyCookie has essentials.mail - true
09.04 14:41:44 [Server] INFO checking if ACrispyCookie has essentials.seen - true
09.04 14:41:44 [Server] INFO checking if ACrispyCookie can afford charge.
09.04 14:41:44 [Server] INFO calculated command (seen) cost for ACrispyCookie as 0
09.04 14:41:44 [Server] INFO checking if ACrispyCookie has essentials.seen.banreason - true
09.04 14:41:44 [Server] INFO checking if ACrispyCookie has essentials.seen.ip - true
09.04 14:41:44 [Server] INFO checking if ACrispyCookie has essentials.seen.location - true
09.04 14:41:44 [Server] INFO checking if ACrispyCookie has essentials.seen.ipsearch - true
09.04 14:41:44 [Server] INFO UUID: 9635ef59-c9ab-3cbd-b41d-911b85a5e178
09.04 14:41:44 [Server] INFO attempting to charge user ACrispyCookie
09.04 14:41:44 [Server] INFO calculated command (seen) cost for ACrispyCookie as 0
09.04 14:41:44 [Server] INFO charge user ACrispyCookie completed
@ACrispyCookie The player JohnnyCrafterGR
doesn't have a logout
timestamp for some reason, perhaps due to a server crash. This means that EssentialsX doesn't know when the player logged out, so /seen
won't work. When the player next logs out, they should have a valid logout timestamp.
Does this also affect the balance of the player? Because if I do /bal JohnnyCrafterGR it says the starting balance of a new player.
If they have a saved balance and you're using EssentialsX's economy, no, as the player has user data - it's just missing the time that they logged out. It's possible that your server didn't shut down safely and EssentialsX didn't save the userdata, though.
It happened on a well-known player which his timestamps are:
login: 1522751378159
logout: 1522751573523
lastteleport: 1522751317724
The balance reset on that player, or /seen
didn't work? Could you paste the console output of doing /seen
on that player and their whole userdata file?