webbukkit / dynmap

A set of Minecraft mods that provide a real time web-based map system for various Minecraft server implementations.
https://www.reddit.com/r/Dynmap/
Apache License 2.0
2.02k stars 414 forks source link
fabricmc-mod forge-mod minecraft-mod papermc-plugins spigotmc-plugins

Dynmap® - dynamic web maps for Minecraft servers

Jump around the README

To build and get all jars in target/, run:

./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.

./gradlew :fabric-1.18:build

What platforms are supported?

The following target platforms are supported, and you can find them at the links supplied:

Server type Version Dynmap JAR Where?
Spigot/PaperMC ≤1.20.6 Dynmap-<version>-spigot.jar SpigotMC
Spigot/PaperMC ≤1.20.6 Dynmap-<version>-spigot.jar Modrinth
Forge 1.12.2 - 1.20.x Dynmap-<version>-forge-<MC_VERSION>.jar Curseforge
Fabric 1.15.2 - 1.20.x Dynmap-<version>-fabric-<MC_VERSION>.jar Curseforge

Data Storage

Dynmap supports the following storage backends:

Contributing to Dynmap's Code

The Dynmap team welcomes Pull Requests with fixes, new features, and new platform support. That said, the following rules apply:

Porting, Supporting Other Platforms, Customized Dynmap Builds

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.

Where to go for questions and discussions

We have a Discord located at https://discord.gg/52pqBpw We also have a subreddit located at https://www.reddit.com/r/Dynmap/

Where to go to make donations

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.