mirror of
https://github.com/songoda/SongodaCore.git
synced 2024-10-22 12:20:26 +02:00
Fix converting errors for EpicFarming and EpicHoppers
This commit is contained in:
parent
e642980c2c
commit
55a29c2af1
@ -3,6 +3,7 @@ package com.craftaro.core.database;
|
||||
import com.craftaro.core.SongodaPlugin;
|
||||
|
||||
import java.io.File;
|
||||
import java.sql.Blob;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.ResultSet;
|
||||
@ -73,6 +74,11 @@ public abstract class DataMigration {
|
||||
String columnName = metaRs.getColumnName(i);
|
||||
String columnType = metaRs.getColumnTypeName(i);
|
||||
int columnSize = metaRs.getColumnDisplaySize(i);
|
||||
//Fix EpicHoppers BIT column type from corrupted db
|
||||
if (columnType.equals("BIT") && plugin.getName().toLowerCase().equals("epichoppers")) {
|
||||
columnType = "VARCHAR";
|
||||
columnSize = 20;
|
||||
}
|
||||
|
||||
createTableQuery.append(columnName).append(" ").append(columnType).append("(").append(columnSize).append(")");
|
||||
|
||||
@ -96,6 +102,9 @@ public abstract class DataMigration {
|
||||
insertQuery.append("NULL");
|
||||
} else if (value instanceof String || value instanceof Timestamp) {
|
||||
insertQuery.append("'").append(value instanceof String ? ((String) value).replaceAll("'", "''") : value).append("'");
|
||||
} else if (value instanceof byte[]) {
|
||||
// Handle BLOB columns
|
||||
insertQuery.append("X'").append(bytesToHex((byte[]) value)).append("'");
|
||||
} else {
|
||||
insertQuery.append(value);
|
||||
}
|
||||
@ -158,4 +167,14 @@ public abstract class DataMigration {
|
||||
columns.setLength(columns.length() - 2);
|
||||
return columns.toString();
|
||||
}
|
||||
|
||||
|
||||
// Utility method to convert byte array to hexadecimal string
|
||||
private static String bytesToHex(byte[] bytes) {
|
||||
StringBuilder hexString = new StringBuilder();
|
||||
for (byte b : bytes) {
|
||||
hexString.append(String.format("%02x", b));
|
||||
}
|
||||
return hexString.toString();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user