diff --git a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java index 1ff2d58f..d68ee61c 100644 --- a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java +++ b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java @@ -552,8 +552,9 @@ public class DynmapCore implements DynmapCommonAPI { /* Print version info */ Log.info("version " + plugin_ver + " is enabled - core version " + version ); - Log.info("For support, visit https://forums.dynmap.us"); + Log.info("For support, visit https://reddit.com/r/Dynmap"); Log.info("To report or track bugs, visit https://github.com/webbukkit/dynmap/issues"); + Log.info("If you'd like to donate, please visit https://www.patreon.com/dynmap or https://ko-fi.com/michaelprimm"); events.trigger("initialized", null); diff --git a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java index ff28e925..4f5f39ab 100644 --- a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java +++ b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java @@ -51,6 +51,8 @@ import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.registry.IRegistry; +import net.minecraft.util.registry.RegistryNamespaced; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.IBlockReader; @@ -72,6 +74,8 @@ import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerChangedDimensio import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedOutEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.ForgeRegistry; import net.minecraftforge.registries.RegistryManager; import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.common.registry.GameRegistry; @@ -258,10 +262,10 @@ public class DynmapPlugin public static final Biome[] getBiomeList() { if (biomelist == null) { biomelist = new Biome[256]; - Iterator iter = Biome.MUTATION_TO_BASE_ID_MAP.iterator(); + Iterator iter = ForgeRegistries.BIOMES.iterator(); while (iter.hasNext()) { - Biome b = iter.next(); - int bidx = Biome.MUTATION_TO_BASE_ID_MAP.get(b); + Biome b = iter.next(); + int bidx = RegistryNamespaced.BIOME.getId(b); if (bidx >= biomelist.length) { biomelist = Arrays.copyOf(biomelist, bidx + biomelist.length); } @@ -1361,16 +1365,23 @@ public class DynmapPlugin if(bb != null) { String id = bb.getRegistryName().getPath(); float tmp = bb.getDefaultTemperature(), hum = bb.getDownfall(); + int watermult = bb.getWaterColor(); + Log.verboseinfo("biome[" + i + "]: hum=" + hum + ", tmp=" + tmp + ", mult=" + Integer.toHexString(watermult)); + BiomeMap bmap = BiomeMap.byBiomeID(i); if (bmap.isDefault()) { - BiomeMap m = new BiomeMap(i, id, tmp, hum); - Log.verboseinfo("Add custom biome [" + m.toString() + "] (" + i + ")"); + bmap = new BiomeMap(i, id, tmp, hum); + Log.verboseinfo("Add custom biome [" + bmap.toString() + "] (" + i + ")"); cnt++; } else { bmap.setTemperature(tmp); bmap.setRainfall(hum); } + if (watermult != -1) { + bmap.setWaterColorMultiplier(watermult); + Log.verboseinfo("Set watercolormult for " + bmap.toString() + " (" + i + ") to " + Integer.toHexString(watermult)); + } } } if(cnt > 0) diff --git a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/ForgeMapChunkCache.java b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/ForgeMapChunkCache.java index 0ab72bf4..ea9e6099 100644 --- a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/ForgeMapChunkCache.java +++ b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/ForgeMapChunkCache.java @@ -927,7 +927,7 @@ public class ForgeMapChunkCache extends MapChunkCache Class[] p = m.getParameterTypes(); if ((p.length == 3) && (p[0].equals(Chunk.class)) && (p[1].equals(World.class)) && (p[2].equals(NBTTagCompound.class))) { writechunktonbt = m; - //Log.info("Found writechunktonbt- " + m.getName()); + Log.info("Found writechunktonbt- " + m.getName()); m.setAccessible(true); break; } @@ -1059,6 +1059,7 @@ public class ForgeMapChunkCache extends MapChunkCache NBTTagCompound rslt = null; ChunkPos coord = new ChunkPos(x, z); + //} // if (pendingcoords.contains(coord.asLong()) { // for (Object o : chunkstoremove.values()) { // if (chunkCoord == null) { @@ -1095,8 +1096,14 @@ public class ForgeMapChunkCache extends MapChunkCache } rslt = CompressedStreamTools.read(str); } - if(rslt != null) + if(rslt != null) { rslt = rslt.getCompound("Level"); + // Don't load uncooked chunks + String stat = rslt.getString("Status"); + if ((stat == null) || (stat.equals("full") == false)) { + rslt = null; + } + } //Log.info(String.format("loadChunk(%d,%d)=%s", x, z, (rslt != null) ? rslt.toString() : "null")); return rslt; } catch (Exception exc) {