This repository has been archived on 2024-10-31. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
LibZontreck/src/main/java/dev/zontreck/libzontreck/config/sections/DatabaseSection.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;
}
}