Merge branch 'v3.0' into postgres

This commit is contained in:
mikeprimm 2020-04-12 19:35:03 -05:00 committed by GitHub
commit 3b09dba95f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 57 additions and 29 deletions

View File

@ -3,8 +3,8 @@ description = "DynmapCore"
dependencies { dependencies {
compile project(path: ':DynmapCoreAPI', configuration: 'shadow') compile project(path: ':DynmapCoreAPI', configuration: 'shadow')
compile 'javax.servlet:javax.servlet-api:3.1' compile 'javax.servlet:javax.servlet-api:3.1'
compile 'org.eclipse.jetty:jetty-server:9.4.24.v20191120' compile 'org.eclipse.jetty:jetty-server:9.4.26.v20200117'
compile 'org.eclipse.jetty:jetty-servlet:9.4.24.v20191120' compile 'org.eclipse.jetty:jetty-servlet:9.4.26.v20200117'
compile 'com.googlecode.json-simple:json-simple:1.1.1' compile 'com.googlecode.json-simple:json-simple:1.1.1'
compile 'org.yaml:snakeyaml:1.23' compile 'org.yaml:snakeyaml:1.23'
compile 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20180219.1' compile 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20180219.1'

View File

@ -49,10 +49,7 @@ import org.dynmap.markers.MarkerAPI;
import org.dynmap.markers.impl.MarkerAPIImpl; import org.dynmap.markers.impl.MarkerAPIImpl;
import org.dynmap.modsupport.ModSupportImpl; import org.dynmap.modsupport.ModSupportImpl;
import org.dynmap.renderer.DynmapBlockState; import org.dynmap.renderer.DynmapBlockState;
import org.dynmap.servlet.FileResourceHandler; import org.dynmap.servlet.*;
import org.dynmap.servlet.JettyNullLogger;
import org.dynmap.servlet.LoginServlet;
import org.dynmap.servlet.MapStorageResourceHandler;
import org.dynmap.storage.MapStorage; import org.dynmap.storage.MapStorage;
import org.dynmap.storage.filetree.FileTreeMapStorage; import org.dynmap.storage.filetree.FileTreeMapStorage;
import org.dynmap.storage.mysql.MySQLMapStorage; import org.dynmap.storage.mysql.MySQLMapStorage;
@ -843,12 +840,15 @@ public class DynmapCore implements DynmapCommonAPI {
filters.add(new CustomHeaderFilter(configuration.getNode("http-response-headers"))); filters.add(new CustomHeaderFilter(configuration.getNode("http-response-headers")));
FilterHandler fh = new FilterHandler(router, filters); FilterHandler fh = new FilterHandler(router, filters);
ContextHandler contextHandler = new ContextHandler();
contextHandler.setContextPath("/");
contextHandler.setHandler(fh);
HandlerList hlist = new HandlerList(); HandlerList hlist = new HandlerList();
hlist.setHandlers(new org.eclipse.jetty.server.Handler[] { new SessionHandler(), fh }); hlist.setHandlers(new org.eclipse.jetty.server.Handler[] { new SessionHandler(), contextHandler });
webServer.setHandler(hlist); webServer.setHandler(hlist);
addServlet("/up/configuration", new org.dynmap.servlet.ClientConfigurationServlet(this)); addServlet("/up/configuration", new ClientConfigurationServlet(this));
addServlet("/standalone/config.js", new org.dynmap.servlet.ConfigJSServlet(this)); addServlet("/standalone/config.js", new ConfigJSServlet(this));
if(authmgr != null) { if(authmgr != null) {
LoginServlet login = new LoginServlet(this); LoginServlet login = new LoginServlet(this);
addServlet("/up/login", login); addServlet("/up/login", login);

View File

@ -25,6 +25,7 @@ public class MarkersComponent extends ClientComponent {
private MarkerSignManager signmgr; private MarkerSignManager signmgr;
private MarkerIcon spawnicon; private MarkerIcon spawnicon;
private String spawnlbl; private String spawnlbl;
private String worldborderlbl;
private MarkerSet offlineset; private MarkerSet offlineset;
private MarkerIcon offlineicon; private MarkerIcon offlineicon;
private MarkerSet spawnbedset; private MarkerSet spawnbedset;
@ -57,6 +58,9 @@ public class MarkersComponent extends ClientComponent {
spawnicon = api.getMarkerIcon(MarkerIcon.WORLD); spawnicon = api.getMarkerIcon(MarkerIcon.WORLD);
} }
} }
if (showBorder) {
worldborderlbl = configuration.getString("worldborderlabel", "Border");
}
if (showSpawn || showBorder) { if (showSpawn || showBorder) {
/* Add listener for world loads */ /* Add listener for world loads */
WorldEventListener wel = new WorldEventListener() { WorldEventListener wel = new WorldEventListener() {
@ -280,7 +284,7 @@ public class MarkersComponent extends ClientComponent {
} }
} }
if (am == null) { if (am == null) {
am = ms.createAreaMarker(borderid, "Border", false, w.getName(), x, z, false); am = ms.createAreaMarker(borderid, worldborderlbl, false, w.getName(), x, z, false);
} }
else { else {
am.setCornerLocations(x, z); am.setCornerLocations(x, z);

View File

@ -887,22 +887,19 @@
} }
.dynmap .mapMarker .markerIcon16x16 { .dynmap .mapMarker .markerIcon16x16 {
margin-top: -8px; transform: translate(-50%, -50%);
margin-left: -8px;
width: 16px; width: 16px;
height: 16px; height: 16px;
} }
.dynmap .mapMarker .markerIcon8x8 { .dynmap .mapMarker .markerIcon8x8 {
margin-top: -4px; transform: translate(-50%, -50%);
margin-left: -4px;
width: 8px; width: 8px;
height: 8px; height: 8px;
} }
.dynmap .mapMarker .markerIcon32x32 { .dynmap .mapMarker .markerIcon32x32 {
margin-top: -16px; transform: translate(-50%, -50%);
margin-left: -16px;
width: 32px; width: 32px;
height: 32px; height: 32px;
} }

View File

@ -23,3 +23,6 @@ Dynmap supports the following storage backends:
- SQLite - SQLite
- MySQL - MySQL
- PostgreSQL: EXPERIMENTAL - PostgreSQL: EXPERIMENTAL
# Where to go for questions and discussions
I've just created a Reddit for the Dynmap family of mods/plugins - please give it a try - https://www.reddit.com/r/Dynmap/

View File

@ -60,9 +60,14 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric {
Server srv = Bukkit.getServer(); Server srv = Bukkit.getServer();
/* Get getHandle() method */ /* Get getHandle() method */
try { try {
Method m = srv.getClass().getMethod("getHandle"); try {
Object scm = m.invoke(srv); /* And use it to get SCM (nms object) */ Class.forName("red.mohist.Mohist");
return scm.getClass().getPackage().getName(); return "net.minecraft.server.v1_12_R1";
} catch (Exception x) {
Method m = srv.getClass().getMethod("getHandle");
Object scm = m.invoke(srv); /* And use it to get SCM (nms object) */
return scm.getClass().getPackage().getName();
}
} catch (Exception x) { } catch (Exception x) {
Log.severe("Error finding net.minecraft.server packages"); Log.severe("Error finding net.minecraft.server packages");
return null; return null;
@ -72,7 +77,11 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric {
protected void loadNMS() { protected void loadNMS() {
// Get block fields // Get block fields
nmsblock = getNMSClass("net.minecraft.server.Block"); nmsblock = getNMSClass("net.minecraft.server.Block");
nmsblockarray = getNMSClass("[Lnet.minecraft.server.Block;"); try {
nmsblockarray = getNMSClass("[Lnet.minecraft.block.Block;");
} catch (Exception x) {
nmsblockarray = getNMSClass("[Lnet.minecraft.server.Block;");
}
nmsmaterial = getNMSClass("net.minecraft.server.Material"); nmsmaterial = getNMSClass("net.minecraft.server.Material");
if (isBlockIdNeeded()) { // Not needed for 1.13+ if (isBlockIdNeeded()) { // Not needed for 1.13+
blockbyid = getFieldNoFail(nmsblock, new String[] { "byId" }, nmsblockarray); blockbyid = getFieldNoFail(nmsblock, new String[] { "byId" }, nmsblockarray);
@ -88,7 +97,11 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric {
/* Set up biomebase fields */ /* Set up biomebase fields */
biomebase = getNMSClass("net.minecraft.server.BiomeBase"); biomebase = getNMSClass("net.minecraft.server.BiomeBase");
biomebasearray = getNMSClass("[Lnet.minecraft.server.BiomeBase;"); try {
biomebasearray = getNMSClass("[Lnet.minecraft.world.biome.Biome;");
} catch (Exception x) {
biomebasearray = getNMSClass("[Lnet.minecraft.server.BiomeBase;");
}
biomebaselist = getPrivateFieldNoFail(biomebase, new String[] { "biomes" }, biomebasearray); biomebaselist = getPrivateFieldNoFail(biomebase, new String[] { "biomes" }, biomebasearray);
if ((biomebaselist == null) && isBiomeBaseListNeeded()) { if ((biomebaselist == null) && isBiomeBaseListNeeded()) {
getbiomefunc = getMethodNoFail(biomebase, new String[] { "getBiome" }, new Class[] { int.class, biomebase }); getbiomefunc = getMethodNoFail(biomebase, new String[] { "getBiome" }, new Class[] { int.class, biomebase });

View File

@ -132,7 +132,11 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper {
cw_gethandle = getMethod(craftworld, new String[] { "getHandle" }, new Class[0]); cw_gethandle = getMethod(craftworld, new String[] { "getHandle" }, new Class[0]);
/* CraftChunkSnapshot */ /* CraftChunkSnapshot */
craftchunksnapshot = getOBCClass("org.bukkit.craftbukkit.CraftChunkSnapshot"); craftchunksnapshot = getOBCClass("org.bukkit.craftbukkit.CraftChunkSnapshot");
biomebasearray = getNMSClass("[Lnet.minecraft.server.BiomeBase;"); try {
biomebasearray = getNMSClass("[Lnet.minecraft.world.biome.Biome;");
} catch (Exception x) {
biomebasearray = getNMSClass("[Lnet.minecraft.server.BiomeBase;");
}
ccss_biome = getPrivateFieldNoFail(craftchunksnapshot, new String[] { "biome" }, biomebasearray); ccss_biome = getPrivateFieldNoFail(craftchunksnapshot, new String[] { "biome" }, biomebasearray);
if(ccss_biome == null) { if(ccss_biome == null) {
biomestorage = getNMSClass("net.minecraft.server.BiomeStorage"); biomestorage = getNMSClass("net.minecraft.server.BiomeStorage");

View File

@ -127,6 +127,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) Show world border (vanilla 1.8+) # (optional) Show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -5,7 +5,7 @@
"description": "Dynamic, Google Maps style web maps for Minecraft Servers", "description": "Dynamic, Google Maps style web maps for Minecraft Servers",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://forums.dynmap.us", "url": "https://www.reddit.com/r/Dynmap/",
"updateUrl": "", "updateUrl": "",
"authors": [ "authors": [
"mikeprimm" "mikeprimm"

View File

@ -127,6 +127,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) Show world border (vanilla 1.8+) # (optional) Show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -5,7 +5,7 @@
"description": "Dynamic, Google Maps style web maps for Minecraft Servers", "description": "Dynamic, Google Maps style web maps for Minecraft Servers",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://forums.dynmap.us", "url": "https://www.reddit.com/r/Dynmap/",
"updateUrl": "", "updateUrl": "",
"authors": [ "authors": [
"mikeprimm" "mikeprimm"

View File

@ -127,6 +127,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) Show world border (vanilla 1.8+) # (optional) Show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -5,7 +5,7 @@
"description": "Dynamic, Google Maps style web maps for Minecraft Servers", "description": "Dynamic, Google Maps style web maps for Minecraft Servers",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://forums.dynmap.us", "url": "https://www.reddit.com/r/Dynmap/",
"updateUrl": "", "updateUrl": "",
"authors": [ "authors": [
"mikeprimm" "mikeprimm"

View File

@ -127,6 +127,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) Show world border (vanilla 1.8+) # (optional) Show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -5,7 +5,7 @@
"description": "Dynamic, Google Maps style web maps for Minecraft Servers", "description": "Dynamic, Google Maps style web maps for Minecraft Servers",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://forums.dynmap.us", "url": "https://www.reddit.com/r/Dynmap/",
"updateUrl": "", "updateUrl": "",
"authors": [ "authors": [
"mikeprimm" "mikeprimm"

View File

@ -127,6 +127,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) Show world border (vanilla 1.8+) # (optional) Show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -5,7 +5,7 @@
"description": "Dynamic, Google Maps style web maps for Minecraft Servers", "description": "Dynamic, Google Maps style web maps for Minecraft Servers",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://forums.dynmap.us", "url": "https://www.reddit.com/r/Dynmap/",
"updateUrl": "", "updateUrl": "",
"authors": [ "authors": [
"mikeprimm" "mikeprimm"

View File

@ -127,6 +127,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) Show world border (vanilla 1.8+) # (optional) Show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -5,7 +5,7 @@
"description": "Dynamic, Google Maps style web maps for Minecraft Servers", "description": "Dynamic, Google Maps style web maps for Minecraft Servers",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://forums.dynmap.us", "url": "https://www.reddit.com/r/Dynmap/",
"updateUrl": "", "updateUrl": "",
"authors": [ "authors": [
"mikeprimm" "mikeprimm"

View File

@ -128,6 +128,7 @@ components:
spawnbedformat: "%name%'s bed" spawnbedformat: "%name%'s bed"
# (optional) show world border (vanilla 1.8+) # (optional) show world border (vanilla 1.8+)
showworldborder: true showworldborder: true
worldborderlabel: "Border"
- class: org.dynmap.ClientComponent - class: org.dynmap.ClientComponent
type: chat type: chat

View File

@ -2,7 +2,7 @@ name: dynmap
main: org.dynmap.bukkit.DynmapPlugin main: org.dynmap.bukkit.DynmapPlugin
version: "${version}-${buildnumber}" version: "${version}-${buildnumber}"
authors: [mikeprimm] authors: [mikeprimm]
website: "https://forums.dynmap.us" website: "https://www.reddit.com/r/Dynmap/"
softdepend: [ Permissions, PermissionEx, bPermissions, PermissionsBukkit, GroupManager, LuckPerms ] softdepend: [ Permissions, PermissionEx, bPermissions, PermissionsBukkit, GroupManager, LuckPerms ]
commands: commands:
dynmap: dynmap: