Gunpowder
Gunpowder aims to provide an all-in-one API for your server modding needs. While designed for servers, it does work in singleplayer too, as do all of our official modules.
Modules
Gunpowder offers the following (official) modules:
Support
If you find a bug or want to suggest a feature, go to the Issues tab If the bug is related to one of our modules, go to that specific module here If you want to ask for help and/or clarify a bug, or even contribute to the project, you can find us on the AOF discord in #gunpowder
License
This mod is available under the MIT license.
Contributing
More information will be provided soon. Contributions should follow the guidelines in CONTRIBUTING.md.
Extending
If you want to use Gunpowder, add the following to your build.gradle:
dependencies {
modApi "io.github.gunpowder:gunpowder-api:${gunpowder_version}+${minecraft_version}"
}
repositories {
maven {
name = "Gunpowder"
url = "https://maven.martmists.com/releases"
}
}
Create a class extending GunpowderModule (e.g. com.example.ExampleModule), and then fabric.mod.json, add:
{
"entrypoints": {
"gunpowder:modules": [
"com.example.ExampleModule"
]
}
}
Hello, are you still working on a Multiverse Mod equivalent for gunpowder as referenced here?
While that mod itself I'm no longer working on, I can confirm the internals work fine to generate dimensions at runtime.
Hi, I'm not able to make my fabric open in 1.18. It makes an error message.
Open an issue on github with an error log.
In reply to Martmists:
I think I was the problem because I putted the mod in solo and not with the server API... xD
When it will be for 1.18?
Now :D
In reply to Martmists:
Ty
Does it work on 1.18
Not yet, but I'm working on it.
Should work now :)
Alright so basically:
---- Minecraft Crash Report -------- Minecraft Crash Report ----
Put your spoiler here.
---- Minecraft Crash Report -------- Minecraft Crash Report ----// Oops.
Time: 11/21/21, 9:05 PMDescription: Exception in server tick loop
java.lang.NoClassDefFoundError: eu/pb4/permissions/api/v0/Permissions at io.github.gunpowder.api.ext.ServerPlayerEntityKt.getPresentPermission(ServerPlayerEntity.kt:53) at io.github.gunpowder.api.ext.ServerPlayerEntityKt.getPresentPermission(ServerPlayerEntity.kt:59) at io.github.gunpowder.entities.builders.Command$CommandBuilder.permission$lambda-0(Command.kt:80) at com.mojang.brigadier.tree.CommandNode.canUse(CommandNode.java:65) at net.minecraft.class_2170.method_9239(class_2170.java:310) at net.minecraft.class_2170.method_9239(class_2170.java:333) at net.minecraft.class_2170.method_9241(class_2170.java:304) at net.minecraft.class_3324.method_14596(class_3324.java:631) at net.minecraft.class_3324.method_14576(class_3324.java:532) at net.minecraft.class_3324.method_14570(class_3324.java:192) at net.minecraft.class_3248.method_33800(class_3248.java:129) at net.minecraft.class_3248.method_14384(class_3248.java:117) at net.minecraft.class_3248.redirect$zhk000$handlePlayerJoin(class_3248.java:563) at net.minecraft.class_3248.method_18785(class_3248.java:67) at net.minecraft.class_2535.method_10754(class_2535.java:234) at net.minecraft.class_3242.method_14357(class_3242.java:183) at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:902) at net.minecraft.class_3176.method_3813(class_3176.java:335) at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:831) at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:697) at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270) at java.base/java.lang.Thread.run(Thread.java:831)Caused by: java.lang.ClassNotFoundException: eu.pb4.permissions.api.v0.Permissions at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) at net.fabricmc.loader.impl.launch.server.InjectingURLClassLoader.loadClass(InjectingURLClassLoader.java:57) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:158) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ... 22 more
A detailed walkthrough of the error, its code path and all known details is as follows:---------------------------------------------------------------------------------------
-- System Details --Details: Minecraft Version: 1.17.1 Minecraft Version ID: 1.17.1 Operating System: Linux (amd64) version 5.4.0-89-generic Java Version: 16.0.2, Alpine Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Alpine Memory: 1628229048 bytes (1552 MiB) / 4601151488 bytes (4388 MiB) up to 8589934592 bytes (8192 MiB) CPUs: 3 Processor Vendor: GenuineIntel Processor Name: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz Identifier: Intel64 Family 6 Model 158 Stepping 13 Microarchitecture: unknown Frequency (GHz): 3.60 Number of physical packages: 1 Number of physical CPUs: 8 Number of logical CPUs: 16 Graphics card #0 name: unknown Graphics card #0 vendor: unknown Graphics card #0 VRAM (MB): 0.00 Graphics card #0 deviceId: unknown Graphics card #0 versionInfo: unknown Virtual memory max (MB): 68463.10 Virtual memory used (MB): 63952.91 Swap memory total (MB): 4091.00 Swap memory used (MB): 2041.53 JVM Flags: 2 total; -Xms128M -Xmx8192M Fabric Mods: aopalliance_aopalliance: aopalliance 1.0 apoli: Apoli 2.0.5 banhammer: BanHammer 0.4.2+1.17.1 bssentials: Bssentials 3.0.44 calio: Calio 1.3.0 cardinal-components-base: Cardinal Components API (base) 3.1.1 cardinal-components-entity: Cardinal Components API (entities) 3.1.1 cardinal-components-item: Cardinal Components API (items) 3.0.1 cloth-basic-math: cloth-basic-math 0.6.0 cloth-config2: Cloth Config v5 5.1.40 clumps: Clumps 7.0.10 com_fasterxml_jackson_core_jackson-annotations: jackson-annotations 2.13.0-rc2 com_fasterxml_jackson_core_jackson-core: jackson-core 2.13.0-rc2 com_fasterxml_jackson_core_jackson-databind: jackson-databind 2.13.0-rc2 com_fasterxml_jackson_dataformat_jackson-dataformat-yaml: jackson-dataformat-yaml 2.13.0-rc2 com_fasterxml_jackson_module_jackson-module-kotlin: jackson-module-kotlin 2.13.0-rc2 com_focamacho_sealconfig: sealconfig 1.2.2 com_google_inject_guice: guice 5.0.1 cyber-permissions: CyberPermissions 1.3 dragonloot: DragonLoot 1.0.9 ec-core: Essential Commands Core 1.0.0-mc1.17.1 enchantmentdescriptions: Enchantment Descriptions 4.0.1 enva: Environmental Armor 1.4.0 essential_commands: Essential Commands 0.17.0-mc1.17.1 expandedstorage: Expanded Storage 7.2.7 extension: Extension 1.5 fabric: Fabric API 0.42.1+1.17 fabric-api-base: Fabric API Base 0.4.0+5847535018 fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.3.1+5847535018 fabric-biome-api-v1: Fabric Biome API (v1) 3.2.2+5847535018 fabric-command-api-v1: Fabric Command API (v1) 1.1.4+5847535018 fabric-commands-v0: Fabric Commands (v0) 0.2.3+5847535018 fabric-containers-v0: Fabric Containers (v0) 0.1.13+5847535018 fabric-content-registries-v0: Fabric Content Registries (v0) 0.3.1+5847535018 fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.6+5847535018 fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.13+5847535018 fabric-entity-events-v1: Fabric Entity Events (v1) 1.3.1+5847535018 fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.11+5847535018 fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.2+5847535018 fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.8+5847535018 fabric-item-api-v1: Fabric Item API (v1) 1.2.5+5847535018 fabric-item-groups-v0: Fabric Item Groups (v0) 0.3.1+5847535018 fabric-language-kotlin: Fabric Language Kotlin 1.6.5+kotlin.1.5.31 fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.4.5+5847535018 fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.5+5847535018 fabric-mining-level-api-v1: Fabric Mining Level API (v1) 1.0.2+6d0fac4218 fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.5+6d0fac4218 fabric-networking-api-v1: Fabric Networking API (v1) 1.0.14+5847535018 fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.12+5847535018 fabric-networking-v0: Fabric Networking (v0) 0.3.3+5847535018 fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.10.11+6d0fac4218 fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.5+6d0fac4218 fabric-particles-v1: Fabric Particles (v1) 0.2.5+5847535018 fabric-permissions-api-v0: fabric-permissions-api 0.1-SNAPSHOT fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.13+5847535018 fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.6+5847535018 fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.2.1+6d0fac4218 fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.9+5847535018 fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.9+5847535018 fabric-structure-api-v1: Fabric Structure API (v1) 1.1.14+5847535018 fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.2.2+5847535018 fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.3.1+eb76084f18 fabric-transfer-api-v1: Fabric Transfer API (v1) 1.5.1+6d0fac4218 fabricloader: Fabric Loader 0.12.5 fallflyinglib: FallFlyingLib 3.0.0-beta.2 gunpowder-base: Gunpowder 1.0.6.3+1.17.1 gunpowder-sleepvote: Gunpowder SleepVote 1.0.5+gunpowder.1.0.0.mc.1.17-rc2 gunpowder-teleport: Gunpowder Teleport 1.1.0+gunpowder.1.0.4.1.mc.1.17 gunpowder-utilities: Gunpowder Utilities 1.0.6+gunpowder.1.0.4.2.mc.1.17 java: OpenJDK 64-Bit Server VM 16 javax_inject_javax_inject: javax.inject 1 kanos_config: Kanos Config 0.1.4+1.14.4-1.17.1 minecraft: Minecraft 1.17.1 mysql_mysql-connector-java: mysql-connector-java 8.0.25 ninjaphenix_container_lib: NinjaPhenix's Container Library 1.2.4 org_jetbrains_exposed_exposed-core: exposed-core 0.34.1 org_jetbrains_exposed_exposed-java-time: exposed-java-time 0.34.1 org_jetbrains_exposed_exposed-jdbc: exposed-jdbc 0.34.1 org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 1.5.31 org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 1.5.31 org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 1.5.31 org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 1.5.31 org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.5.2 org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.5.2 org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.3.0 org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.3.0 org_postgresql_postgresql: postgresql 42.2.22 org_slf4j_slf4j-api: slf4j-api 2.0.0-alpha5 org_xerial_sqlite-jdbc: sqlite-jdbc 3.36.0.3 org_yaml_snakeyaml: snakeyaml 1.29 origins: Origins 1.1.4 origins-classes: Origins: Classes 1.2.2 pehkui: Pehkui 2.5.3+1.14.4-1.18 placeholder-api: Placeholder API 1.1.1+1.17.1 playerabilitylib: Pal 1.3.0 reach-entity-attributes: Reach Entity Attributes 2.1.1 ringsofascension: Rings of Ascension 1.0.1 sidebar-api: Sidebar API 0.1.0-rc.3+1.17.1 spellbound: Spellbound 1.6.0 terrific_trinkets: Terrific Trinkets 0.3.0 trade: Trade 1.2.1 trinkets: Trinkets 3.0.4 xp_storage: XP Storage 1.4.2+1.17.1 xp_storage_trinkets: XP Storage - Trinkets 0.1+1.17.1 Player Count: 0 / 20; [] Data Packs: vanilla, file/Pumpkins LOST (incompatible), Fabric Mods, file/Sans (Resourcepack), file/Sans Origin (Don't Unzip!).zip, file/CD1016DatapackOrigins_-_PURE.zip, file/KZRiftborn (1).zip, file/ROPE, file/between_dimension_datapack, file/TheWorld (incompatible) Is Modded: Definitely; Server brand changed to 'Fabric/Gunpowder' Type: Dedicated Server (map_server.txt)
Try installing this mod: https://github.com/Patbox/ServerPermissionsAPI/releases/download/0.1.0-alpha1/permissions-api-0.1.0-alpha1.jar
The mod seems to be causing issues for my server, could you advise me on how to solve it?
io.github.gunpowder.modelhandlers.BalanceHandler.getUser(BalanceHandler.java:60)
at io.github.gunpowder.modelhandlers.BalanceHandler.modifyUser(BalanceHandler.java:83)
at io.github.gunpowder.GunpowderCurrencyModule$registerEvents$1.onStartTick(GunpowderCurrencyModule.java:59)
I tried mysql, I tried sqlite, nada. nothing but spam from gunpowder with SQL errors.
[00:30:44] [DefaultDispatcher-worker-5/WARN] (Exposed) Transaction attempt #1 failed: java.sql.SQLSyntaxErrorException: Table 's2325_gunpowder.ActionIdentifiers' doesn't exist. Statement(s): SELECT ActionIdentifiers.id, ActionIdentifiers.action_identifier FROM ActionIdentifiers WHERE ActionIdentifiers.action_identifier = ?
org.jetbrains.exposed.exceptions.ExposedSQLException: java.sql.SQLSyntaxErrorException: Table 's2325_gunpowder.ActionIdentifiers' doesn't exist
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:62) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:135) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:121) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at org.jetbrains.exposed.sql.AbstractQuery.iterator(AbstractQuery.kt:65) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at org.jetbrains.exposed.sql.IterableExKt$mapLazy$1.iterator(IterableEx.kt:129) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:198) ~[fbaa3874-f480-4981-942f-4b9ae1bcedff.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager.selectActionId(DatabaseManager.java:470) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager.access$selectActionId(DatabaseManager.java:52) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.java:347) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.java:346) ~[ledger-1.1.0.jar:?]
at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.java:258) ~[ledger-1.1.0.jar:?]
at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.java:234) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager.insertAction(DatabaseManager.java:346) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager.access$insertAction(DatabaseManager.java:52) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invokeSuspend(DatabaseManager.java:67) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.java) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.java) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invokeSuspend(DatabaseManager.java:315) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.java) ~[ledger-1.1.0.jar:?]
at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.java) ~[ledger-1.1.0.jar:?]
at org.jetbrains.exposed.sql.transactions.experimental.SuspendedKt$suspendedTransactionAsyncInternal$1.invokeSuspend(Suspended.kt:127) [2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [fbaa3874-f480-4981-942f-4b9ae1bcedff.jar:?]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) [2b572b40-f884-4cf1-86b8-49444efd84b5.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) [2b572b40-f884-4cf1-86b8-49444efd84b5.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) [2b572b40-f884-4cf1-86b8-49444efd84b5.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) [2b572b40-f884-4cf1-86b8-49444efd84b5.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) [2b572b40-f884-4cf1-86b8-49444efd84b5.jar:?]
Caused by: java.sql.SQLSyntaxErrorException: Table 's2325_gunpowder.ActionIdentifiers' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[7610ace5-9abe-4663-8edb-fea477962232.jar:?]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[7610ace5-9abe-4663-8edb-fea477962232.jar:?]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[7610ace5-9abe-4663-8edb-fea477962232.jar:?]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003) ~[7610ace5-9abe-4663-8edb-fea477962232.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeQuery(JdbcPreparedStatementImpl.kt:24) ~[494032e5-5c7d-4ccb-8e42-5a3f14c6351d.jar:?]
at org.jetbrains.exposed.sql.Query.executeInternal(Query.kt:83) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at org.jetbrains.exposed.sql.Query.executeInternal(Query.kt:13) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:60) ~[2225c1df-5439-4764-8f61-5daac118284c.jar:?]
... 26 more
This error comes from Ledger, report it to them.
Is there a way to create translations for Gunpowder and the modules?
Yes! If you check our github (the "source" link) you can look at how language files are currently used. There's a few that are not set up for translation yet I think, but I can do so upon request.
Hi, sorry if this is a dumb question, but is this for fabric? I see it listed as a dependency, but the description doesn't mention it so I wanted to double check. Thanks for your time!
Yup! Sadly curseforge doesn't like to remember tags we give to files and it doesn't have a way to mark a project as fabric-only.