mirror of
https://github.com/GeorgH93/Minepacks.git
synced 2025-02-01 23:22:06 +01:00
Add proper MC 1.13 support for backpack storage
This commit is contained in:
parent
8aa891ff1d
commit
6f1f3c791f
2
pom.xml
2
pom.xml
@ -57,7 +57,7 @@
|
||||
<dependency>
|
||||
<groupId>at.pcgamingfreaks</groupId>
|
||||
<artifactId>PluginLib</artifactId>
|
||||
<version>1.0.5-SNAPSHOT</version>
|
||||
<version>1.0.6-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
@ -27,10 +27,15 @@
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public class Config extends Configuration
|
||||
{
|
||||
private static final int CONFIG_VERSION = 21, UPGRADE_THRESHOLD = 21;
|
||||
@ -49,7 +54,7 @@ protected void doUpdate()
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doUpgrade(YamlFileManager oldConfig)
|
||||
protected void doUpgrade(@NotNull YamlFileManager oldConfig)
|
||||
{
|
||||
if(oldConfig.getVersion() < 20) // Pre V2.0 config file
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
import at.pcgamingfreaks.Bukkit.ItemStackSerializer.BukkitItemStackSerializer;
|
||||
import at.pcgamingfreaks.Bukkit.ItemStackSerializer.ItemStackSerializer;
|
||||
import at.pcgamingfreaks.Bukkit.ItemStackSerializer.NBTItemStackSerializer;
|
||||
import at.pcgamingfreaks.Bukkit.ItemStackSerializer.NBTItemStackSerializerGen2;
|
||||
import at.pcgamingfreaks.ConsoleColor;
|
||||
|
||||
import org.bukkit.inventory.Inventory;
|
||||
@ -32,16 +32,16 @@ public class InventorySerializer
|
||||
private static final ItemStackSerializer BUKKIT_ITEM_STACK_SERIALIZER = new BukkitItemStackSerializer();
|
||||
private final Logger logger;
|
||||
private ItemStackSerializer serializer;
|
||||
private int usedSerializer = 1;
|
||||
private int usedSerializer = 2;
|
||||
|
||||
public InventorySerializer(Logger logger)
|
||||
{
|
||||
this.logger = logger;
|
||||
try
|
||||
{
|
||||
if(NBTItemStackSerializer.isMCVersionCompatible())
|
||||
if(NBTItemStackSerializerGen2.isMCVersionCompatible())
|
||||
{
|
||||
serializer = new NBTItemStackSerializer(logger);
|
||||
serializer = new NBTItemStackSerializerGen2(logger);
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
@ -66,9 +66,11 @@ public ItemStack[] deserialize(byte[] data, int usedSerializer)
|
||||
switch(usedSerializer)
|
||||
{
|
||||
case 0: return BUKKIT_ITEM_STACK_SERIALIZER.deserialize(data);
|
||||
case 1: if(usedSerializer != this.usedSerializer) { logger.warning(ConsoleColor.RED + "No compatible serializer for item format available!" + ConsoleColor.RESET); return null; }
|
||||
default: return serializer.deserialize(data);
|
||||
case 1:
|
||||
case 2: return serializer.deserialize(data);
|
||||
default: logger.warning(ConsoleColor.RED + "No compatible serializer for item format available!" + ConsoleColor.RESET);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getUsedSerializer()
|
||||
|
@ -57,13 +57,22 @@ protected void checkDB()
|
||||
{
|
||||
try(Connection connection = getConnection())
|
||||
{
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE {TablePlayers} (\n{FieldPlayerID} INT UNSIGNED NOT NULL AUTO_INCREMENT,\n{FieldName} CHAR(16) NOT NULL,\n{FieldUUID} CHAR(36) DEFAULT NULL," +
|
||||
if(useUUIDs)
|
||||
{
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE IF NOT EXISTS {TablePlayers} (\n{FieldPlayerID} INT UNSIGNED NOT NULL AUTO_INCREMENT,\n{FieldName} VARCHAR(16) NOT NULL,\n" +
|
||||
"{FieldUUID} CHAR(" + ((useUUIDSeparators) ? "36" : "32") + ") DEFAULT NULL," + "\nPRIMARY KEY ({FieldPlayerID}),\n" +
|
||||
"UNIQUE INDEX {FieldUUID}_UNIQUE ({FieldUUID})\n);"));
|
||||
}
|
||||
else
|
||||
{
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE IF NOT EXISTS {TablePlayers} (\n{FieldPlayerID} INT UNSIGNED NOT NULL AUTO_INCREMENT,\n{FieldName} CHAR(16) NOT NULL,\n" +
|
||||
"\nPRIMARY KEY ({FieldPlayerID}),\nUNIQUE INDEX {FieldUUID}_UNIQUE ({FieldUUID})\n);"));
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE {TableBackpacks} (\n{FieldBPOwner} INT UNSIGNED NOT NULL,\n{FieldBPITS} BLOB,\n{FieldBPVersion} INT DEFAULT 0,\n" +
|
||||
}
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE IF NOT EXISTS {TableBackpacks} (\n{FieldBPOwner} INT UNSIGNED NOT NULL,\n{FieldBPITS} BLOB,\n{FieldBPVersion} INT DEFAULT 0,\n" +
|
||||
"{FieldBPLastUpdate} TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n" +
|
||||
"PRIMARY KEY ({FieldBPOwner}),\nCONSTRAINT fk_{TableBackpacks}_{TablePlayers}_{FieldBPOwner} FOREIGN KEY ({FieldBPOwner}) " +
|
||||
"REFERENCES {TablePlayers} ({FieldPlayerID}) ON DELETE CASCADE ON UPDATE CASCADE\n);"));
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE {TableCooldowns} (\n{FieldCDPlayer} INT UNSIGNED,\n{FieldCDTime} LONG NOT NULL,\nPRIMARY KEY ({FieldCDPlayer}),\n" +
|
||||
DBTools.updateDB(connection, replacePlaceholders("CREATE TABLE IF NOT EXISTS {TableCooldowns} (\n{FieldCDPlayer} INT UNSIGNED,\n{FieldCDTime} LONG NOT NULL,\nPRIMARY KEY ({FieldCDPlayer}),\n" +
|
||||
"CONSTRAINT fk_{TableCooldowns}_{TablePlayers}_{FieldCDPlayer} FOREIGN KEY ({FieldCDPlayer}) " +
|
||||
"REFERENCES {TablePlayers} ({FieldPlayerID}) ON DELETE CASCADE ON UPDATE CASCADE\n);"));
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ public void onEnable()
|
||||
{
|
||||
Utils.warnOnJava_1_7(getLogger());
|
||||
//region Check compatibility with used minecraft version
|
||||
if(MCVersion.is(MCVersion.UNKNOWN) || MCVersion.isNewerThan(MCVersion.MC_NMS_1_13_R1))
|
||||
if(MCVersion.is(MCVersion.UNKNOWN) || MCVersion.isNewerThan(MCVersion.MC_NMS_1_13_R2))
|
||||
{
|
||||
String name = Bukkit.getServer().getClass().getPackage().getName();
|
||||
String[] version = name.substring(name.lastIndexOf('.') + 2).split("_");
|
||||
|
Loading…
Reference in New Issue
Block a user