Giter Site home page Giter Site logo

Comments (18)

caoli5288 avatar caoli5288 commented on August 11, 2024

Try https://github.com/caoli5288/PlayerSQL/releases/tag/v2.5b1 :-)

from playersql.

alphanimal avatar alphanimal commented on August 11, 2024

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.

caoli5288 avatar caoli5288 commented on August 11, 2024

@alphanimal I'll check it later. seems 1.12 change the NBT format.

from playersql.

alphanimal avatar alphanimal commented on August 11, 2024

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.

caoli5288 avatar caoli5288 commented on August 11, 2024

@alphanimal Alright. That not a very important warn. :-)

from playersql.

alphanimal avatar alphanimal commented on August 11, 2024

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.

alphanimal avatar alphanimal commented on August 11, 2024

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.

alphanimal avatar alphanimal commented on August 11, 2024

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.

alphanimal avatar alphanimal commented on August 11, 2024

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.

caoli5288 avatar caoli5288 commented on August 11, 2024

@alphanimal have no idea if NMS changed NBT format. This plugin call NMS's origin save/load method by reflect.
Feeling sorry.

from playersql.

alphanimal avatar alphanimal commented on August 11, 2024

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.

alphanimal avatar alphanimal commented on August 11, 2024

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.

caoli5288 avatar caoli5288 commented on August 11, 2024

@alphanimal I'll do a mechanism not override database column if player load inventory from database failed.

from playersql.

caoli5288 avatar caoli5288 commented on August 11, 2024

@alphanimal https://github.com/caoli5288/PlayerSQL/releases/tag/v2.5.1

from playersql.

alphanimal avatar alphanimal commented on August 11, 2024

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.

caoli5288 avatar caoli5288 commented on August 11, 2024

@alphanimal Umm... Okay I'll made it.

from playersql.

caoli5288 avatar caoli5288 commented on August 11, 2024

Try https://github.com/caoli5288/PlayerSQL/releases/tag/v2.5.1b2 and set/add kick-load-failed: false in config.yml

from playersql.

alphanimal avatar alphanimal commented on August 11, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.