Skip to content

Commit 6862e69

Browse files
committed
Optional force use ProtocolLib
1 parent ccd75c0 commit 6862e69

File tree

3 files changed

+24
-17
lines changed

3 files changed

+24
-17
lines changed

src/main/java/com/mengcraft/playersql/Config.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class Config {
1616
public static final boolean KICK_LOAD_FAILED;
1717
public static final boolean TRANSFER_ORIGIN;
1818
public static final boolean OMIT_PLAYER_DEATH;
19+
public static final boolean FORCE_PROTOCOLLIB;
1920

2021
public static final boolean DEBUG;
2122
public static final int SYN_DELAY;
@@ -33,6 +34,7 @@ public class Config {
3334
OMIT_PLAYER_DEATH = CONF.getBoolean("plugin.omit-player-death", false);
3435
KICK_LOAD_FAILED = CONF.getBoolean("kick-load-failed", true);
3536
TRANSFER_ORIGIN = CONF.getBoolean("transfer-origin", false);
37+
FORCE_PROTOCOLLIB = CONF.getBoolean("plugin.use-protocollib-default", false);
3638
}
3739

3840
}

src/main/java/com/mengcraft/playersql/DataSerializer.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,26 @@ public class DataSerializer {
1616
private static final IPacketDataSerializer.IFactory PACKET_DATA_SERIALIZER_FACTORY;
1717

1818
static {
19-
switch (Bukkit.getServer().getClass().getPackage().getName()) {
20-
case "org.bukkit.craftbukkit.v1_8_R3":
21-
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_8_3.PacketDataSerializer(buf);
22-
break;
23-
case "org.bukkit.craftbukkit.v1_12_R1":
24-
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_12.PacketDataSerializer(buf);
25-
break;
26-
case "org.bukkit.craftbukkit.v1_13_R1":
27-
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_13.PacketDataSerializer(buf);
28-
break;
29-
case "org.bukkit.craftbukkit.v1_13_R2":
30-
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_13_2.PacketDataSerializer(buf);
31-
break;
32-
default:
33-
PACKET_DATA_SERIALIZER_FACTORY = null;
34-
break;
19+
if (Config.FORCE_PROTOCOLLIB) {
20+
PACKET_DATA_SERIALIZER_FACTORY = null;
21+
} else {
22+
switch (Bukkit.getServer().getClass().getPackage().getName()) {
23+
case "org.bukkit.craftbukkit.v1_8_R3":
24+
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_8_3.PacketDataSerializer(buf);
25+
break;
26+
case "org.bukkit.craftbukkit.v1_12_R1":
27+
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_12.PacketDataSerializer(buf);
28+
break;
29+
case "org.bukkit.craftbukkit.v1_13_R1":
30+
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_13.PacketDataSerializer(buf);
31+
break;
32+
case "org.bukkit.craftbukkit.v1_13_R2":
33+
PACKET_DATA_SERIALIZER_FACTORY = buf -> new com.mengcraft.playersql.internal.v1_13_2.PacketDataSerializer(buf);
34+
break;
35+
default:
36+
PACKET_DATA_SERIALIZER_FACTORY = null;
37+
break;
38+
}
3539
}
3640
System.out.println(String.format("PACKET_DATA_SERIALIZER_FACTORY = %s", PACKET_DATA_SERIALIZER_FACTORY));
3741
}
@@ -57,7 +61,7 @@ public static ItemStack deserialize(String input) {
5761
ItemStack output;
5862
try (IPacketDataSerializer serializer = PACKET_DATA_SERIALIZER_FACTORY.create(Unpooled.wrappedBuffer(Base64.getDecoder().decode(input)))) {
5963
output = serializer.readItemStack();
60-
} catch (io.netty.handler.codec.EncoderException e) {// upgrade from below 2.9?
64+
} catch (RuntimeException e) {// upgrade from below 2.9?
6165
Preconditions.checkState(Bukkit.getPluginManager().isPluginEnabled("ProtocolLib"), "protocollib not found");
6266
output = StreamSerializer.getDefault().deserializeItemStack(input);
6367
}

src/main/resources/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ plugin:
55
omit-player-death: false
66
# Use this option in your own risk. It's MAY BREAK SERVER.
77
use-protocol-locker: false
8+
use-protocollib-default: false
89

910
sync:
1011
health: true

0 commit comments

Comments
 (0)