QuiltServerTools / Ledger

A server-side logging mod for fabric 1.17+
https://www.quiltservertools.net/Ledger/latest/
GNU Lesser General Public License v3.0
190 stars 52 forks source link

Conflict with other Mods that also use exposed #253

Closed disymayufei closed 7 months ago

disymayufei commented 7 months ago

Expected behavior

Not conflict

Observed/actual behavior

Conflict with other Mods that also depend on exposed

Steps/models to reproduce

  1. Install a mod with exposed (jar in jar)
  2. Install this mod
  3. the conflict happened

What operating system are you running

Linux

Minecraft version

1.20.4

Ledger version

1.3.0

Logs

None

Agreements

Other

Some part of report:

[20:03:24] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoSuchMethodError: 'org.jetbrains.exposed.sql.Column org.jetbrains.exposed.sql.Table.blob$default(org.jetbrains.exposed.sql.Table, java.lang.String, boolean, int, java.lang.Object)'
    at io.github.wafarm.inventorysyncing.database.Tables$PlayerTable.<clinit>(Tables.kt:18) ~[InventorySyncing-0.1.jar:?]
    at io.github.wafarm.inventorysyncing.database.DatabaseManager$ensureTables$1.invoke(DatabaseManager.kt:22) ~[InventorySyncing-0.1.jar:?]
    at io.github.wafarm.inventorysyncing.database.DatabaseManager$ensureTables$1.invoke(DatabaseManager.kt:21) ~[InventorySyncing-0.1.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:189) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:215) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:223) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:214) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:165) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:223) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:135) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:132) ~[ledger-1.3.0.jar:?]
    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:131) ~[ledger-1.3.0.jar:?]
    at io.github.wafarm.inventorysyncing.database.DatabaseManager.ensureTables(DatabaseManager.kt:21) ~[InventorySyncing-0.1.jar:?]
    at io.github.wafarm.inventorysyncing.InventorySyncing.onInitializeServer$lambda$1(InventorySyncing.kt:50) ~[InventorySyncing-0.1.jar:?]
    at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$0(ServerLifecycleEvents.java:38) ~[fabric-lifecycle-events-v1-2.2.2+b3afc78b77-31b8918d41d1bef4.jar:?]
    at net.minecraft.server.MinecraftServer.handler$dad000$fabric-lifecycle-events-v1$beforeSetupServer(MinecraftServer.java:7837) ~[server-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:646) ~[server-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]

so why must shadow the exposed in ledger? may you try to change to jar-in-jar mode?