Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
003cad5
Back to SNAPSHOT
mikeprimm-mirific Jan 15, 2025
9e5e65b
Add async chunk loading for spigot/paper 1.21.3/1.21.4
ZockiRR Feb 2, 2025
c785bd7
Fix null handling in getLoadedChunkAsync for paper/spigot 1.21.3/1.21.4
ZockiRR Mar 7, 2025
10e6739
Merge pull request #4188 from ZockiRR/v3.0
mikeprimm Apr 1, 2025
c070ca9
Spigot 1.21.5 support
jacob1 Mar 31, 2025
802f62b
initial port to fabric 1.21.5
Apr 4, 2025
85f5ec6
Merge pull request #4198 from jacob1/1.21.5-bukkit
mikeprimm May 31, 2025
8b8d13b
Merge pull request #4200 from petersv5/1.21.5-fabric-port
mikeprimm May 31, 2025
14d90d9
Get to consistent fabric-loom (and specific one)
mikeprimm May 31, 2025
a0dd8fe
Fix 1.21.5 jtracy dependency
mikeprimm May 31, 2025
67e8b7f
Add Forge 1.21.5
mikeprimm May 31, 2025
8eb1ba4
don't copy full buffer
fosscel Jun 5, 2025
7c4ab25
Bump to 3.7-beta-9
mikeprimm Jun 7, 2025
3abbca8
Back to SNAPSHOT
mikeprimm Jun 10, 2025
49ce30b
Modernise login forms and structure.
chris-everett Jun 10, 2025
71fc5d4
fix (s3): use correct continuation token
fosscel Jun 11, 2025
9ece73b
Seems to work like this (1.21.6 - tested on Paper release 28)
Chaosjan44 Jun 25, 2025
23f8b88
OSSRH Sunset - switch to central (only that linktosriram's s3-lite is…
Chaosjan44 Jun 30, 2025
9093b07
added 1.21.7 helper so that we can start the plugin on 1.21.7 - new b…
Chaosjan44 Jun 30, 2025
37e2e24
removed the 1.21.6 Bukkit Helper since its not needed
Chaosjan44 Jul 7, 2025
4233d3e
Merge pull request #4222 from Chaosjan44/v3.0
mikeprimm Jul 8, 2025
20dd6af
Add Fabric 1.21.7 support
reusteur73 Jul 9, 2025
7f348ee
Add dried_ghast texture
reusteur73 Jul 9, 2025
14e3331
Adjust version lookup for 1.21.x releases
mikeprimm Jul 9, 2025
c9c8cb2
Merge pull request #4228 from reusteur73/v3.0-contrib
mikeprimm Jul 9, 2025
140b6ea
Merge pull request #4218 from fosscel/fix-s3-continuation
mikeprimm Jul 9, 2025
76f381e
Merge pull request #4214 from fosscel/fix-s3-filesize
mikeprimm Jul 9, 2025
6a85dcd
Add missing textures, shift to 1.21.6 and 1.21.7
mikeprimm Jul 9, 2025
8cdfee1
Add forge 1.21.6/1.21.7
mikeprimm Jul 12, 2025
48d9c5b
Adjust version range for 1.21 forge versions
mikeprimm Jul 12, 2025
d8b4b20
Adjust version ranges
mikeprimm Jul 12, 2025
1775762
Bump to 3.7-beta-10
mikeprimm Jul 13, 2025
1063a71
Create PostgreSQL_register.php
armenium Jul 14, 2025
8adfcbb
Back to SNAPSHOT
mikeprimm Jul 15, 2025
681f7d6
Add Fabric 1.21.8 support
reusteur73 Aug 2, 2025
d9fc2ab
Merge pull request #4235 from reusteur73/v3.0-contrib
mikeprimm Sep 16, 2025
314c644
Bump to beta-11 for Fabric 1.21.8 update
mikeprimm Sep 16, 2025
687f92d
Copy raw Fabric 1.21.6 files for 1.21.9
reusteur73 Oct 2, 2025
adc68ad
Apply fixes for Fabric 1.21.9 to build successfully
reusteur73 Oct 2, 2025
0d86772
Update Gradle version
reusteur73 Oct 2, 2025
23f02ca
Add Fabric 1.21.9 project to settings.gradle
reusteur73 Oct 2, 2025
6b67672
Define missing and additional textures
reusteur73 Oct 6, 2025
c1fb59f
Add missing and new texture images
reusteur73 Oct 6, 2025
c9d5966
Rename subproject to fabric-1.21.9-10
reusteur73 Oct 7, 2025
a68db08
settings.gradle update
reusteur73 Oct 7, 2025
5d89224
Spigot/Paper 1.21.9-1.21.10 basic support
jacob1 Oct 1, 2025
05bb7db
Fix builds not completing - remove discontinued sonatype repo
jacob1 Oct 8, 2025
bd1bad4
Fix additional exception when disabling dynmap after it fails to load
jacob1 Oct 8, 2025
51b6dab
Removed old build files
reusteur73 Oct 8, 2025
45f5b72
Create double copper chest textures
reusteur73 Oct 8, 2025
68fe8fd
Fix simple chest textures and include corresponding model and texture…
reusteur73 Oct 8, 2025
e7e8588
Fix unreachable `fabric-permissions-api` dependency
reusteur73 Oct 8, 2025
4fd96ec
Reuse `me.lucko:fabric-permissions-api` with updated version
reusteur73 Oct 8, 2025
2b7e799
Update loom version
reusteur73 Oct 8, 2025
24cb2c8
Fix comments in past versions of MapChunkCache. Despite the comment p…
jacob1 Dec 12, 2025
648950f
Spigot 1.21.11 support
jacob1 Dec 12, 2025
9c2cfc3
Add Fabric 1.21.11 support
reusteur73 Dec 30, 2025
e9fcfd9
Update Loom version to ensure proper compilation of all Fabric module…
reusteur73 Dec 30, 2025
e9895c9
Added irritating github repo libraries to dynmap repo
mikeprimm Jan 6, 2026
d3c3883
Merge pull request #4216 from chris-everett/login-register-form-tidy-ups
mikeprimm Jan 6, 2026
8226f85
Merge pull request #4231 from armenium/v3.0
mikeprimm Jan 6, 2026
4d08975
Merge branch 'v3.0' into 1.21.9-spigot
mikeprimm Jan 6, 2026
9a4658b
Merge pull request #4239 from jacob1/1.21.9-spigot
mikeprimm Jan 6, 2026
d8bc15d
Fix Spigot 1.21.11 merge, set to SNAPSHOT
mikeprimm Jan 6, 2026
96168b1
Fix missing build file
mikeprimm Jan 6, 2026
580eef4
Merge pull request #4240 from reusteur73/v3.0
mikeprimm Jan 6, 2026
c0cd1c7
Add Forge 1.21.10
mikeprimm Jan 9, 2026
6234683
Rest of Forge 1.21.10
mikeprimm Jan 9, 2026
4daa33f
Add forge 1.21.11 support
mikeprimm Jan 9, 2026
798a22f
Fix chunkgenerate on Forge 1.21.6
mikeprimm Jan 9, 2026
8a14652
Set to 3.8-rc1
mikeprimm Jan 11, 2026
ef569f4
Bump to 3.8
mikeprimm Jan 14, 2026
c375665
Prune pre 1.21.6 builds from Forge and Fabric builds, bump to
mikeprimm Jan 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,10 @@ private static class ChunkStatusMap {
new ChunkStatusMap("carvers", 0xFFEFD5);
new ChunkStatusMap("liquid_carvers", 0xF0E68C);
new ChunkStatusMap("features", 0xBDB76B);
new ChunkStatusMap("initialize_light", 0xAAA0AA);
new ChunkStatusMap("light", 0xDDA0DD);
new ChunkStatusMap("spawn", 0xFF00FF);
new ChunkStatusMap("heightmaps", 0x9370DB);
new ChunkStatusMap("spawn", 0xFF00FF);
new ChunkStatusMap("full", 0x32CD32);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ public boolean write(long hash, BufferOutputStream encImage, long timestamp) {
s3.deleteObject(req);
}
else {
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(map.getImageFormat().getEncoding().getContentType())
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(map.getImageFormat().getEncoding().getContentType())
.addMetadata("x-dynmap-hash", Long.toHexString(hash)).addMetadata("x-dynmap-ts", Long.toString(timestamp)).build();
s3.putObject(req, RequestBody.fromBytes(encImage.buf));
s3.putObject(req, RequestBody.fromBytes(Arrays.copyOf(encImage.buf, encImage.len)));
}
done = true;
} catch (S3Exception x) {
Expand Down Expand Up @@ -407,7 +407,7 @@ private void processEnumMapTiles(DynmapWorld world, MapType map, ImageVariant va
}
if (result.isTruncated()) { // If more, build continuiation request
req = ListObjectsV2Request.builder().bucketName(bucketname)
.prefix(basekey).delimiter("").maxKeys(1000).continuationToken(result.getContinuationToken()).encodingType("url").requestPayer("requester").build();
.prefix(basekey).delimiter("").maxKeys(1000).continuationToken(result.getNextContinuationToken()).encodingType("url").requestPayer("requester").build();
}
else { // Else, we're done
done = true;
Expand Down Expand Up @@ -480,7 +480,7 @@ private void processPurgeMapTiles(DynmapWorld world, MapType map, ImageVariant v
}
if (result.isTruncated()) { // If more, build continuiation request
req = ListObjectsV2Request.builder().bucketName(bucketname)
.prefix(basekey).delimiter("").maxKeys(1000).continuationToken(result.getContinuationToken()).encodingType("url").requestPayer("requester").build();
.prefix(basekey).delimiter("").maxKeys(1000).continuationToken(result.getNextContinuationToken()).encodingType("url").requestPayer("requester").build();
}
else { // Else, we're done
done = true;
Expand Down Expand Up @@ -529,7 +529,7 @@ public boolean setPlayerFaceImage(String playername, FaceType facetype,
}
else {
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("image/png").build();
s3.putObject(req, RequestBody.fromBytes(encImage.buf));
s3.putObject(req, RequestBody.fromBytes(Arrays.copyOf(encImage.buf, encImage.len)));
}
done = true;
} catch (S3Exception x) {
Expand Down Expand Up @@ -582,7 +582,7 @@ public boolean setMarkerImage(String markerid, BufferOutputStream encImage) {
}
else {
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("image/png").build();
s3.putObject(req, RequestBody.fromBytes(encImage.buf));
s3.putObject(req, RequestBody.fromBytes(Arrays.copyOf(encImage.buf, encImage.len)));
}
done = true;
} catch (S3Exception x) {
Expand Down Expand Up @@ -611,8 +611,8 @@ public boolean setMarkerFile(String world, String content) {
s3.deleteObject(delreq);
}
else {
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("application/json").build();
s3.putObject(req, RequestBody.fromBytes(content.getBytes(StandardCharsets.UTF_8)));
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("application/json").build();
s3.putObject(req, RequestBody.fromString(content));
}
done = true;
} catch (S3Exception x) {
Expand Down Expand Up @@ -745,7 +745,7 @@ else if (fileid.endsWith(".js")) {
ct = "application/x-javascript";
}
PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(ct).build();
s3.putObject(req, RequestBody.fromBytes(content.buf));
s3.putObject(req, RequestBody.fromBytes(Arrays.copyOf(content.buf, content.len)));
standalone_cache.put(fileid, digest);
}
done = true;
Expand Down
266 changes: 233 additions & 33 deletions DynmapCore/src/main/resources/extracted/web/css/dynmap_style.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
:root {
--colour-highlight: oklch(0.56 0.16 142.24);
--smokey-white: oklch(0.99 0 0);
--gunmetal: oklch(0.29 0.02 277.99);
--charcoal-grey: oklch(0.34 0.03 273.24);
--ship-grey: oklch(0.36 0.02 278.37);
--vampire-grey: oklch(0.45 0.02 278.64);
--cool-grey: oklch(0.72 0.02 270.22);
--slate-grey: oklch(0.6 0.02 264.54);
--status-error: oklch(0.51 0.12 22.01);
}

.montserrat-font {
font-family: "Montserrat", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
}

/* TILE DEBUGGING */
/*.leaflet-tile {
margin: -1;
Expand Down Expand Up @@ -1019,46 +1038,227 @@

/* Login/register panel */
.dynmaplogin {
text-align: center;
width: 100%;
font-weight: bold;
color: #FFFFFF;
display: grid;
width: 100%;
height: 100%;
place-items: center;
width: 100%;
font-weight: bold;
color: #FFFFFF;
background: var(--vampire-grey);
font-family: "Montserrat", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
box-sizing: border-box;

& * {
box-sizing: border-box;
}

.container {
--outer-margin: 2rem;
container-type: inline-size;
container-name: container;
position: relative;
width: calc(100% - var(--outer-margin) * 2);
max-width: 960px;
padding: 3rem;
margin: var(--outer-margin);
padding-block-start: 3rem;
border-radius: 20px;
/*background-image: url("https://wallpapersok.com/images/file/minecraft-landscape-with-cloudy-sky-b9nxzmdukp1j51zq.jpg"); */
background-color: var(--gunmetal);
box-shadow: 0px 30px 30px -5px var(--ship-grey);

&::before {
position: absolute;
top: 0;
left: 0;
z-index: 0;
content: '';
display: flex;
width: 100%;
height: 100%;
background: url("https://cdn.modrinth.com/data/fRQREgAc/2eaa1e6a6fa03e485a319a628d6b29ba382855b4_96.webp");
background-position: right 1rem;
background-repeat: no-repeat;
background-size: 25%;
pointer-events: none;
opacity: 0.4;
mix-blend-mode: overlay;
}
}

h2 {
margin: 0;
font-size: 2rem;
font-weight: 700;
color: var(--smokey-white);

span {
color: var(--colour-highlight);
}
}
h3 {
margin: 0;
margin-block-end: 5rem;
padding-right: 40px;
font-size: 1rem;
font-weight: 700;
color: var(--cool-grey);
text-transform: uppercase;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 5px;
text-decoration-color: var(--colour-highlight);

&:has(~ .statusmessage > div) {
margin-block-end: 3rem;
}
}

p {
line-height: 1.4;
}

a {
color: var(--colour-highlight);
}

code {
font-family: 'Courier New', Courier, monospace;
font-size: 14px;
padding: 4px 6px;
background: #000000;
}
border-radius: 5px;
}

table.loginregister {
color: #ffffff;
border: 1px solid rgba(64,64,64,0.6);
background: #bbb;
font-weight: bold;
margin: auto;
}
.loginregister {
font-size: 1rem;

td.login {
vertical-align: top;
color: #000000;
background-color: #bbb;
border: 1px solid rgba(64,64,64,0.6);
font-weight: bold;
margin: 2em;
width: 40em;
}
&:has(#register-form:target) #login-form {
display: none;
}

td.register {
vertical-align: top;
color: #000000;
background-color: #bbb;
border: 1px solid rgba(64,64,64,0.6);
font-weight: bold;
margin: 2em;
width: 40em;
#login-form { }

#register-form {
display: none;
&:target {
display: block;
}
}
input {
width: 100%;
padding: 0;
font-size: 1rem;
color: var(--smokey-white);
border: none;
background: transparent;
font-family: inherit;
font-weight: 500;
&::placeholder {
opacity: 0.1;
color: var(--smokey-white);

}
&:focus-visible {
background: none;
border: none;
outline: none;
}
&:is(:-webkit-autofill, :autofill) {
border: none;
}

&[type="submit"] {
max-width: 20ch;
padding-block: 1rem;
padding-inline: 2rem;
background-color: var(--colour-highlight);
border-radius: calc(infinity * 1px);
border: 2px solid transparent;
cursor: pointer;
transition: .2s background ease;
&:hover {
background-color: oklch(from var(--colour-highlight) calc(l - 0.04) c h);
}
&:focus-visible {
border: 2px solid var(--smokey-white);
}
}
}

label {
margin-block-end: .2rem;
color: var(--slate-grey);
font-size: 0.813rem;
font-weight: 400;
}
}

form {
display: grid;
grid-template-columns: minmax(100px, 1fr);
gap: 2rem;
max-width: 60ch;

p {
grid-column: 1 / -1;
}
}
.form-item {
position: relative;
grid-column: 1 / -1;
display: flex;
flex-direction: column;
padding-block: 1rem;
padding-inline: 2rem;
background-color: var(--charcoal-grey);
border-radius: 10px;
border: 2px solid transparent;
transition: border .5s ease;
&:focus-within {
border: 2px solid var(--colour-highlight);
color: black;
}
}

@container (width > 400px) {
form {
grid-template-columns: repeat(2, minmax(100px, 1fr));

}

.form-item.shortened {
grid-column: 1;
+ .shortened {
grid-column: 2;
}
}

h3 {
padding: 0;
}
}
}

div.statusmessage {
color: #FF0000;
font-weight: bold;
font-size: 24px;

position: relative;
z-index: 2;
&:empty {
display: none;
}
> div {
margin-block-end: 2rem;
padding: 1rem;
color: var(--smokey-white);
font-weight: bold;
font-size: 16px;
background: linear-gradient(90deg, var(--status-error) 30%, transparent 80%);
font-weight: 300;
border-radius: 5px;
}

.logincontainer {
Expand Down
Loading
Loading