Comments (18)
Try https://github.com/caoli5288/PlayerSQL/releases/tag/v2.5b1 :-)
from playersql.
Now I get this after logging on and the inventory is empty now.
[16:38:09] [Server thread/ERROR]: [PlayerSQL] java.lang.IllegalArgumentException: Length of Base64 encoded input string is not a multiple of 4.
java.lang.IllegalArgumentException: Length of Base64 encoded input string is not a multiple of 4.
at org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder.decode(Base64Coder.java:267) ~[spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder.decode(Base64Coder.java:246) ~[spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder.decode(Base64Coder.java:232) ~[spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at com.mengcraft.playersql.lib.ItemUtil$Simple.load(ItemUtil.java:135) ~[?:?]
at com.mengcraft.playersql.lib.ItemUtil$Simple.convert(ItemUtil.java:87) ~[?:?]
at com.mengcraft.playersql.UserManager.toStack(UserManager.java:219) ~[?:?]
at com.mengcraft.playersql.UserManager.pend(UserManager.java:160) ~[?:?]
at com.mengcraft.playersql.UserManager.pend(UserManager.java:152) ~[?:?]
at com.mengcraft.playersql.UserManager.lambda$addFetched$0(UserManager.java:50) ~[?:?]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71) [spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:353) [spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:738) [spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405) [spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot-1.12-2017-06-10.jar:git-Spigot-87496df-ed8c725]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
from playersql.
@alphanimal I'll check it later. seems 1.12 change the NBT format.
from playersql.
I think it's working now. I'll test if it transports the inventory from 1.11 to 1.12 correctly.
I only get a warning now when I log on:
[17:21:23 WARN]: Wed Jun 14 17:21:23 CEST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
from playersql.
@alphanimal Alright. That not a very important warn. :-)
from playersql.
OK so for player who had their inventory stored in 1.11, when they first join a 1.12 server they lose their inventory with the following error:
[17:03:24] [Server thread/ERROR]: [PlayerSQL] java.lang.IllegalArgumentException: Length of Base64 encoded input string is not a multiple of 4.
java.lang.IllegalArgumentException: Length of Base64 encoded input string is not a multiple of 4.
at org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder.decode(Base64Coder.java:267) ~[spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder.decode(Base64Coder.java:246) ~[spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder.decode(Base64Coder.java:232) ~[spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at com.mengcraft.playersql.lib.ItemUtil$Simple.load(ItemUtil.java:135) ~[?:?]
at com.mengcraft.playersql.lib.ItemUtil$Simple.convert(ItemUtil.java:87) ~[?:?]
at com.mengcraft.playersql.UserManager.toStack(UserManager.java:219) ~[?:?]
at com.mengcraft.playersql.UserManager.pend(UserManager.java:160) ~[?:?]
at com.mengcraft.playersql.UserManager.pend(UserManager.java:152) ~[?:?]
at com.mengcraft.playersql.UserManager.lambda$addFetched$0(UserManager.java:50) ~[?:?]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:353) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:738) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
That is still the case with the newest build
from playersql.
It's pretty bad now, because every player who logs in from now on basically loses their inventory.
The format seems to have changed.
Here's the inventory field from a player who hasn't logged on in 1.12 yet:
["ARQBAiMKAAAJAARlbmNoCgAAAAQCAANsdmwABQIAAmlkABAAAgADbHZsAAMCAAJpZAAiAAIAA2x2\nbAACAgACaWQAEwACAANsdmwAAgIAAmlkABUAAwAKUmVwYWlyQ29zdAAAACsKAAdkaXNwbGF5CAAE\nTmFtZQALTDRaMFJTVFI0SEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","ARYBAHkKAAAJAARlbmNoCgAAAAQCAANsdmwABQIAAmlkACAAAgADbHZsAAECAAJpZAAhAAIAA2x2\nbAADAgACaWQAIgACAANsdmwAAQIAAmlkAEYAAwAKUmVwYWlyQ29zdAAAAB8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","ARYBAAEKAAAJAARlbmNoCgAAAAQCAANsdmwABQIAAmlkACAAAgADbHZsAAMCAAJpZAAiAAIAA2x2\nbAADAgACaWQAIwACAANsdmwAAQIAAmlkAEYAAwAKUmVwYWlyQ29zdAAAAAcAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","ARUBAIMKAAAJAARlbmNoCgAAAAQCAANsdmwABQIAAmlkACAAAgADbHZsAAMCAAJpZAAiAAIAA2x2\nbAADAgACaWQAIwACAANsdmwAAQIAAmlkAEYAAwAKUmVwYWlyQ29zdAAAAAMAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AQUBAGgKAAAJAARlbmNoCgAAAAUCAANsdmwABQIAAmlkADAAAgADbHZsAAICAAJpZAAxAAIAA2x2\nbAABAgACaWQAMgACAANsdmwAAwIAAmlkACIAAgADbHZsAAECAAJpZAAzAAMAClJlcGFpckNvc3QA\nAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AZEpAAAKAAAKAAlGaXJld29ya3MBAAZGbGlnaHQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AUAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","ACMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AUYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AZFAAAAKAAAKAAlGaXJld29ya3MBAAZGbGlnaHQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AZFAAAAKAAAKAAlGaXJld29ya3MBAAZGbGlnaHQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AagBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AU4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AWwDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n",null,null,"AZMBAAAKAAADAApSZXBhaXJDb3N0AAAAAQkAElN0b3JlZEVuY2hhbnRtZW50cwoAAAABAgADbHZs\nAAMCAAJpZAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AQYMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ATkBAAAKAAAJAARlbmNoCgAAAAQCAANsdmwABAIAAmlkAAAAAgADbHZsAAQCAAJpZAACAAIAA2x2\nbAADAgACaWQAIgACAANsdmwAAQIAAmlkAEYAAwAKUmVwYWlyQ29zdAAAAA0AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","ATgBAAAKAAAJAARlbmNoCgAAAAMCAANsdmwABAIAAmlkAAAAAgADbHZsAAMCAAJpZAAiAAIAA2x2\nbAABAgACaWQARgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","AbsBAFIKAAAJAARlbmNoCgAAAAICAANsdmwAAwIAAmlkACIAAgADbHZsAAECAAJpZABGAAMAClJl\ncGFpckNvc3QAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n","ATYBAAAKAAAJAARlbmNoCgAAAAUCAANsdmwAAwIAAmlkAAAAAgADbHZsAAMCAAJpZAAiAAIAA2x2\nbAACAgACaWQABQACAANsdmwAAQIAAmlkAAYAAgADbHZsAAECAAJpZABGAAMAClJlcGFpckNvc3QA\nAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n",null]
Here's the inventory field from a player who has logged on in 1.12:
["CAACaWQAFW1pbmVjcmFmdDpkaWFtb25kX2F4ZQEABUNvdW50AQoAA3RhZwkABGVuY2gKAAAAAgIAA2x2bAAEAgACaWQAIAACAANsdmwAAwIAAmlkACIAAwAKUmVwYWlyQ29zdAAAAAEAAgAGRGFtYWdlAgIA","CAACaWQAGW1pbmVjcmFmdDpkaWFtb25kX3BpY2theGUBAAVDb3VudAEKAAN0YWcJAARlbmNoCgAAAAQCAANsdmwABQIAAmlkACAAAgADbHZsAAECAAJpZAAhAAIAA2x2bAADAgACaWQAIgACAANsdmwAAQIAAmlkAEYAAwAKUmVwYWlyQ29zdAAAABsAAgAGRGFtYWdlACwA","CAACaWQAGG1pbmVjcmFmdDpkaWFtb25kX3Nob3ZlbAEABUNvdW50AQoAA3RhZwkABGVuY2gKAAAAAwIAA2x2bAAFAgACaWQAIAACAANsdmwAAQIAAmlkACEAAgADbHZsAAMCAAJpZAAiAAMAClJlcGFpckNvc3QAAAAGAAIABkRhbWFnZQIaAA==","CAACaWQAF21pbmVjcmFmdDpnb2xkZW5fY2Fycm90AQAFQ291bnQKAgAGRGFtYWdlAAAA","CAACaWQADW1pbmVjcmFmdDppY2UBAAVDb3VudDgCAAZEYW1hZ2UAAAA=","CAACaWQAE21pbmVjcmFmdDpmaXJld29ya3MBAAVDb3VudCMKAAN0YWcKAAlGaXJld29ya3MBAAZGbGlnaHQCCQAKRXhwbG9zaW9ucwoAAAABAQAEVHlwZQQLAAZDb2xvcnMAAAABALMxLAAAAAIABkRhbWFnZQAAAA==","CAACaWQAFW1pbmVjcmFmdDplbmRlcl9wZWFybAEABUNvdW50EAIABkRhbWFnZQAAAA==","CAACaWQAFG1pbmVjcmFmdDpzdG9uZV9zbGFiAQAFQ291bnQDAgAGRGFtYWdlAAMA","CAACaWQAD21pbmVjcmFmdDphcnJvdwEABUNvdW50AwIABkRhbWFnZQAAAA==","CAACaWQADm1pbmVjcmFmdDpib25lAQAFQ291bnQFAgAGRGFtYWdlAAAA","CAACaWQADW1pbmVjcmFmdDpib3cBAAVDb3VudAECAAZEYW1hZ2UBXwA=","CAACaWQAD21pbmVjcmFmdDpjaGVzdAEABUNvdW50AwIABkRhbWFnZQAAAA==","CAACaWQAFW1pbmVjcmFmdDplbmRlcl9jaGVzdAEABUNvdW50AQIABkRhbWFnZQAAAA==",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"CAACaWQADW1pbmVjcmFmdDplZ2cBAAVDb3VudBACAAZEYW1hZ2UAAAA=","CAACaWQADW1pbmVjcmFmdDplZ2cBAAVDb3VudBACAAZEYW1hZ2UAAAA=","CAACaWQADW1pbmVjcmFmdDplZ2cBAAVDb3VudA8CAAZEYW1hZ2UAAAA=","CAACaWQADW1pbmVjcmFmdDplZ2cBAAVDb3VudBACAAZEYW1hZ2UAAAA=","CAACaWQADW1pbmVjcmFmdDplZ2cBAAVDb3VudA4CAAZEYW1hZ2UAAAA=",null,null,null,null,"CAACaWQAF21pbmVjcmFmdDpkaWFtb25kX2Jvb3RzAQAFQ291bnQBCgADdGFnCQAEZW5jaAoAAAAFAgADbHZsAAQCAAJpZAAAAAIAA2x2bAADAgACaWQACAACAANsdmwABAIAAmlkAAIAAgADbHZsAAMCAAJpZAAiAAIAA2x2bAABAgACaWQARgADAApSZXBhaXJDb3N0AAAABwACAAZEYW1hZ2UAAAA=",null,"CAACaWQAEG1pbmVjcmFmdDplbHl0cmEBAAVDb3VudAEKAAN0YWcJAARlbmNoCgAAAAICAANsdmwAAwIAAmlkACIAAgADbHZsAAECAAJpZABGAAMAClJlcGFpckNvc3QAAAALCgAHZGlzcGxheQgABE5hbWUAE0FscGgncyBFeGUncyBFbHl0cmEAAAIABkRhbWFnZQA2AA==","CAACaWQAEm1pbmVjcmFmdDpvYnNlcnZlcgEABUNvdW50AQIABkRhbWFnZQAAAA==",null]
from playersql.
I think the problem is it used to break lines at 76 characters. now all the \n
in the encoded strings cause problems.
It also seems to have a fixed length padded by 0x0, judging from all the AAAAAAAAA in the string.
from playersql.
When I try to remove all the \n
from the inventory field, I get this:
[18:04:39 ERROR]: [PlayerSQL] java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException: null
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at com.mengcraft.playersql.lib.ItemUtil$Simple.load(ItemUtil.java:138) ~[?:?]
at com.mengcraft.playersql.lib.ItemUtil$Simple.convert(ItemUtil.java:87) ~[?:?]
at com.mengcraft.playersql.UserManager.toStack(UserManager.java:219) ~[?:?]
at com.mengcraft.playersql.UserManager.pend(UserManager.java:160) ~[?:?]
at com.mengcraft.playersql.UserManager.pend(UserManager.java:152) ~[?:?]
at com.mengcraft.playersql.UserManager.lambda$addFetched$0(UserManager.java:50) ~[?:?]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:353) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:738) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
Caused by: java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197) ~[?:1.8.0_111]
at java.io.DataInputStream.readUTF(DataInputStream.java:609) ~[?:1.8.0_111]
at java.io.DataInputStream.readUTF(DataInputStream.java:564) ~[?:1.8.0_111]
at net.minecraft.server.v1_12_R1.NBTTagCompound.b(SourceFile:433) ~[spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
at net.minecraft.server.v1_12_R1.NBTTagCompound.load(SourceFile:75) ~[spigot-1.12-2017-06-14.jar:git-Spigot-cd6ba67-f7d14f1]
... 16 more
from playersql.
@alphanimal have no idea if NMS changed NBT format. This plugin call NMS's origin save/load method by reflect.
Feeling sorry.
from playersql.
OK I have a workaround. I archived the playersql table in the database. So when somebody reconnects it's not trying to load the old inventory from the database but is just using the one in the player file. after the inventory is saved in a new record (in the new format) it can be loaded successfully.
Thanks for all your support!
from playersql.
Maybe you can still implement a safety mechanism for that? Say if it fails to load the inventory for any reason from the database, even if there is an entry there, just make a new entry (overwrite) with the currently loaded inventory.
from playersql.
@alphanimal I'll do a mechanism not override database column if player load inventory from database failed.
from playersql.
@alphanimal https://github.com/caoli5288/PlayerSQL/releases/tag/v2.5.1
from playersql.
With this version if I try to load old/invalid data I cannot even log in to the server:
alphanimal lost connection: Your game data loading error, please contact the operator
[18:22:56 INFO]: [PlayerSQL] java.lang.IllegalArgumentException: Length of Base64 encoded input string is not a multiple of 4.
[18:22:56 WARN]: java.lang.NullPointerException
[18:22:56 WARN]: at mineverse.Aust1n46.chat.MineverseChat.onPluginMessageReceived(MineverseChat.java:859)
[18:22:56 WARN]: at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:427)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:2625)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.PacketPlayInCustomPayload.a(SourceFile:58)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.PacketPlayInCustomPayload.a(SourceFile:8)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13)
[18:22:56 WARN]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[18:22:56 WARN]: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:747)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678)
[18:22:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576)
[18:22:56 WARN]: at java.lang.Thread.run(Thread.java:745)
My suggestion is that it should ignore the data that cannot beloaded and just use the inventory from the player file. Once it gets saved to the database again it's OK to load the next time.
from playersql.
@alphanimal Umm... Okay I'll made it.
from playersql.
Try https://github.com/caoli5288/PlayerSQL/releases/tag/v2.5.1b2 and set/add kick-load-failed: false
in config.yml
from playersql.
That is working! very nice!
I'd still make it the default behaviour, but that works.
thank you so much!
from playersql.
Related Issues (20)
- PSQL v2.10加载时出现问题 HOT 1
- 加载出现问题 HOT 1
- lib无法获取 HOT 1
- 玩家经验值在换服后错误
- ERROR HOT 1
- 加载出错 HOT 3
- Error occurred while enabling PlayerSQL HOT 1
- 1.16 items are not transferred HOT 1
- PlayerSQL 2.11.3 Error HOT 3
- PlayerSQL 2.11.6 error HOT 5
- Could not load 'plugins/playersql.jar' in folder 'plugins' HOT 4
- 关于1.16.5最新版与playerSQL HOT 5
- 2.11.6会导致无限刷物品 HOT 10
- This plugin requires simpleorm, but simpleorm is no longer available HOT 2
- null setting issues HOT 4
- 傳送伺服器的指令是什麼 HOT 1
- I can't use command HOT 2
- 玩家数据被锁定 HOT 4
- 玩家背包物品/open HOT 1
- 2.11.6 同步时概率出现玩家经验被设置满值 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from playersql.