register JDBC driver to work around Forge bug

This commit is contained in:
EoD 2025-05-02 21:56:48 +00:00
parent 033c2b8348
commit ce0e173a9e
2 changed files with 13 additions and 1 deletions

View File

@ -151,7 +151,9 @@ dependencies {
// modImplementation project(":myproject")
// embedd the JDBC driver in the mod using jarJar
runtimeOnly "com.mysql:mysql-connector-j:${jdbc_version}"
// JDBC driver auto-detection is broken in Forge as of v47.4.0
// i.e. we need to need it both at compile and runtime
implementation "com.mysql:mysql-connector-j:${jdbc_version}"
jarJar "com.mysql:mysql-connector-j:${jdbc_version}"
additionalRuntimeClasspath "com.mysql:mysql-connector-j:${jdbc_version}"

View File

@ -17,9 +17,11 @@ import vip.fubuki.playersync.sync.VanillaSync;
import vip.fubuki.playersync.util.JDBCsetUp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.cj.jdbc.Driver;
@Mod(PlayerSync.MODID)
public class PlayerSync {
@ -34,6 +36,14 @@ public class PlayerSync {
}
private void commonSetup(final FMLCommonSetupEvent event) {
// JDBC driver auto-detection is broken in Forge as of v47.4.0
// We need to register the driver manually
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException e) {
LOGGER.error("Unable to register JDBC MySQL driver", e);
}
VanillaSync.register();
if (JdbcConfig.SYNC_CHAT.get()) {
ChatSync.register();