All versions
2.5.4
Release
DynamicShop 2.5.46 months ago 58
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.2.x
Platforms
Folia
Paper
Purpur
Spigot
Changes
- Web Administration Integration
- API Endpoints Updated: Standardized the administrative APIs (/api/shop/items and /api/admin/items) to dynamically inject and aggregate both "Special Items" (Permissions/Groups/Servers) and "Player Shop Listings" alongside standard item materials.
- Category Metrics Corrected: Fixed the metric calculations within /api/admin/categories so the tracker accurately reflects totals if items are added to the PERMISSIONS, SERVER_SHOP, or PLAYER_SHOPS categories.
- Intelligent Routing (admin.html): Clicking "Edit" or "Add Item" in the admin dashboard now correctly intercepts what category you are in:
- Special Items: In PERMISSIONS or SERVER_SHOP spaces, clicking "Add Item" or "Edit" will instantly open the backend Special Item Management Modal instead of the Minecraft material picker.
- Player Shops: Clicking "Edit" on an active Player Shop listing now triggers an API sequence (calling an newly established DELETE /api/admin/playershop/{id} endpoint) allowing administrators to force-delete abusive or incorrect player listings directly through the UI.
- World-Scoped Architecture
- Permissions Engine Overhauled: Updated PermissionsManager.hasPermission() to accept a dual-scoped signature taking both Player and String permissionWorld. This correctly offloads context-aware permission checks to the server framework (Vault) if the player attempts to buy a rank/permission intended for another world.
- Configuration Implementation: Added serialization support to SpecialShopItem ensuring that fields like permission_world and group_world are safely loaded, parsed, and exposed to the GUI execution layer without regressions.
- Stability & Patches
- Resolved GUI Compilation Failure: Fixed ShopGUI invoking outdated .hasPermission(Player, String) signatures.
- Repaired Web Payload Crashes: Addressed a severe JSON loop rendering error in {WebServer} where the iterators for parsing special material types triggered Duplicate local variable collisions.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:OzSmbRQS:JBJEuXr9"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OzSmbRQS:JBJEuXr9"
}

