Dynmap 3.x+ uses Gradle for building support for all platforms, with all resulting artifacts produced in the /targets directory. Due to Minecraft 1.18.x+ requirements, the developer's default JDK must be a JDK 17 (or later) versions - older versions will still be compiled to run on the default JDK for those platforms (JDK 8, or JDK 16 for 1.17.x), and common libraries are built JDK 8.
To build and get all jars in
./gradlew setup build
Or (on Windows):
gradlew.bat setup build
The Forge 1.12.2 versions (specifically ForgeGradle for these) are very sensitive to being built by JDK 8, so to build them, set JAVA_HOME to correspond to a JDK 8 installation, then build using the following;
cd oldgradle ./gradlew setup build
Or (on Windows):
cd oldgradle gradlew.bat setup build
Those familiar with gradle can save time by specifying a build (or commenting in settings.gradle) BUT this is not suitable for uploading DEV code changes.
NOTE: PR code submissions MUST be built and TESTED for ALL platforms (including oldgradle), or be rejected and negatively influence future approvals. For more check contributing rules.
The following target platforms are supported, and you can find them at the links supplied:
|Server type||Version||Dynmap JAR||Where?|
Dynmap supports the following storage backends:
The Dynmap team welcomes Pull Requests with fixes, new features, and new platform support. That said, the following rules apply:
While Dynmap is open source, subject to the Apache Public License, v2, the Dynmap team does have specific policies and requirements for anyone that would use the code here for anything except building contributions submitted back to this code base as Pull Requests (which is the only process by which code is accepted and can become part of a release supported by the Dynmap team). Other authorized uses include:
Additions of new functions, including new platform support, in this official Dynmap code base MUST be fully contained within the PRs submitted to this repository. Further, it is always expected than any updates will be built and tested across all relevant platforms - meaning any chances to shared code components (DynmapCore, DynmapCoreAPI) MUST be successfully built and tested on ALL supported platforms (Forge, Spigot, etc). Changes which break supported platforms will be rejected.
The only interfaces published and maintained as 'stable' are the interfaces of the DynmapCoreAPI (cross platform) and dynmap-api (Bukkit/spigot specific) libraries. All other components are NOT libraries - DynmapCore, in particular, is a shared code component across the various platforms, but is subject to breaking changes without warning or consideration - any use of DynmapCore interfaces by code outside this repository is NOT supported, and will likely result in breaking of such consuming code without warning and without apology. DynmapCore is an internal shared code component, not a library - please treat it accordingly.
Plugins or mods using the published APIs - DynmapCoreAPI (for all platforms) or dynmap-api (only for Spigot/Bukkit) - may access these components as 'compile' dependencies: DO NOT INTEGRATE THEM INTO YOUR PLUGIN - this will break Dynmap and/or other plugins when these interfaces are updated or expanded. These libraries are published at https://repo.mikeprimm.com and will be updated each official release.
I've set up a coffee-fund jar (I believe in the theory that software developers are machines that turn caffeine into code), for anyone who wants to throw in some tips! I've got a Patreon here - https://www.patreon.com/dynmap, and for folks just looking to for a one-time coffee buy, hit my Ko-Fi at https://ko-fi.com/michaelprimm !
Dynmap is a registered trademark of Michael Primm, TX USA. All Rights Reserved.