101 lines
2.6 KiB
Java
101 lines
2.6 KiB
Java
package dev.zontreck.libzontreck.config.sections;
|
|
|
|
import dev.zontreck.libzontreck.config.ServerConfig;
|
|
import net.minecraft.nbt.CompoundTag;
|
|
|
|
public class DatabaseSection
|
|
{
|
|
public static final String TAG_NAME = "database";
|
|
public static final String TAG_USER = "username";
|
|
public static final String TAG_PASSWORD = "password";
|
|
public static final String TAG_HOST = "host";
|
|
public static final String TAG_DATABASE = "database";
|
|
public static final String TAG_VERSION = "rev";
|
|
|
|
|
|
public String user = "root";
|
|
public String password = "";
|
|
public String host = "localhost:3306"; // IP:port
|
|
public String database = "savedBlocks";
|
|
public int version;
|
|
|
|
public static final int VERSION = 1;
|
|
|
|
private boolean migrated=false;
|
|
|
|
public static DatabaseSection deserialize(CompoundTag tag)
|
|
{
|
|
int ver = tag.getInt(TAG_VERSION);
|
|
DatabaseSection section = new DatabaseSection();
|
|
section.doMigrations(ver, tag);
|
|
|
|
|
|
return section;
|
|
}
|
|
|
|
public void doMigrations(int ver, CompoundTag tag)
|
|
{
|
|
switch (ver)
|
|
{
|
|
case 0:
|
|
{
|
|
ver++;
|
|
user = tag.getString(TAG_USER);
|
|
password = tag.getString(TAG_PASSWORD);
|
|
host = tag.getString(TAG_HOST);
|
|
database = tag.getString(TAG_DATABASE);
|
|
version = ver;
|
|
migrated=true;
|
|
break;
|
|
}
|
|
default:{
|
|
|
|
user = tag.getString(TAG_USER);
|
|
password = tag.getString(TAG_PASSWORD);
|
|
host = tag.getString(TAG_HOST);
|
|
database = tag.getString(TAG_DATABASE);
|
|
version = ver;
|
|
|
|
if(migrated)
|
|
{
|
|
ServerConfig.commit();
|
|
migrated=false;
|
|
return;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
doMigrations(ver, tag);
|
|
}
|
|
|
|
public DatabaseSection(){
|
|
|
|
}
|
|
|
|
public DatabaseSection(String user, String password, String host, String database)
|
|
{
|
|
this.user = user;
|
|
this.password = password;
|
|
this.host = host;
|
|
this.database = database;
|
|
}
|
|
|
|
public String getAsSQLFileName()
|
|
{
|
|
return database + ".sql";
|
|
}
|
|
|
|
public CompoundTag serialize()
|
|
{
|
|
CompoundTag tag = new CompoundTag();
|
|
tag.putString(TAG_USER, user);
|
|
tag.putString(TAG_PASSWORD, password);
|
|
tag.putString(TAG_HOST, host);
|
|
tag.putString(TAG_DATABASE, database);
|
|
tag.putInt(TAG_VERSION, version);
|
|
|
|
return tag;
|
|
}
|
|
}
|