Add initial support for Glowstone server
This commit is contained in:
parent
46eae02bc8
commit
573f6b1ce1
4 changed files with 421 additions and 16 deletions
|
|
@ -23,6 +23,7 @@ public abstract class BukkitVersionHelper {
|
||||||
|
|
||||||
public static final BukkitVersionHelper getHelper() {
|
public static final BukkitVersionHelper getHelper() {
|
||||||
if(helper == null) {
|
if(helper == null) {
|
||||||
|
Log.info("version=" + Bukkit.getServer().getVersion());
|
||||||
if(Bukkit.getServer().getVersion().contains("MCPC")) {
|
if(Bukkit.getServer().getVersion().contains("MCPC")) {
|
||||||
Log.severe("*********************************************************************************");
|
Log.severe("*********************************************************************************");
|
||||||
Log.severe("* MCPC-Plus is no longer supported via the Bukkit version of Dynmap. *");
|
Log.severe("* MCPC-Plus is no longer supported via the Bukkit version of Dynmap. *");
|
||||||
|
|
@ -37,6 +38,10 @@ public abstract class BukkitVersionHelper {
|
||||||
Log.severe("* Add the DynmapCBBridge plugin to enable support for Dynmap-compatible plugins *");
|
Log.severe("* Add the DynmapCBBridge plugin to enable support for Dynmap-compatible plugins *");
|
||||||
Log.severe("*********************************************************************************");
|
Log.severe("*********************************************************************************");
|
||||||
}
|
}
|
||||||
|
else if(Bukkit.getServer().getClass().getName().contains("GlowServer")) {
|
||||||
|
Log.info("Loading Glowstone support");
|
||||||
|
helper = new BukkitVersionHelperGlowstone();
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
helper = new BukkitVersionHelperCB();
|
helper = new BukkitVersionHelperCB();
|
||||||
}
|
}
|
||||||
|
|
@ -66,14 +71,10 @@ public abstract class BukkitVersionHelper {
|
||||||
* Get ID from biomebase
|
* Get ID from biomebase
|
||||||
*/
|
*/
|
||||||
public abstract int getBiomeBaseID(Object bb);
|
public abstract int getBiomeBaseID(Object bb);
|
||||||
/**
|
|
||||||
* Get net.minecraft.server.world for given world
|
|
||||||
*/
|
|
||||||
public abstract Object getNMSWorld(World w);
|
|
||||||
/**
|
/**
|
||||||
* Get unload queue for given NMS world
|
* Get unload queue for given NMS world
|
||||||
*/
|
*/
|
||||||
public abstract Object getUnloadQueue(Object nmsworld);
|
public abstract Object getUnloadQueue(World world);
|
||||||
/**
|
/**
|
||||||
* For testing unload queue for presence of givne chunk
|
* For testing unload queue for presence of givne chunk
|
||||||
*/
|
*/
|
||||||
|
|
@ -85,7 +86,7 @@ public abstract class BukkitVersionHelper {
|
||||||
/**
|
/**
|
||||||
* Test if normal chunk snapshot
|
* Test if normal chunk snapshot
|
||||||
*/
|
*/
|
||||||
public abstract boolean isCraftChunkSnapshot(ChunkSnapshot css);
|
// public abstract boolean isCraftChunkSnapshot(ChunkSnapshot css);
|
||||||
/**
|
/**
|
||||||
* Remove entities from given chunk
|
* Remove entities from given chunk
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -269,13 +269,13 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get net.minecraft.server.world for given world */
|
/* Get net.minecraft.server.world for given world */
|
||||||
public Object getNMSWorld(World w) {
|
protected Object getNMSWorld(World w) {
|
||||||
return callMethod(w, cw_gethandle, nullargs, null);
|
return callMethod(w, cw_gethandle, nullargs, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get unload queue for given NMS world */
|
/* Get unload queue for given NMS world */
|
||||||
public Object getUnloadQueue(Object nmsworld) {
|
public Object getUnloadQueue(World world) {
|
||||||
Object cps = getFieldValue(nmsworld, nmsw_chunkproviderserver, null); // Get chunkproviderserver
|
Object cps = getFieldValue(getNMSWorld(world), nmsw_chunkproviderserver, null); // Get chunkproviderserver
|
||||||
if(cps != null) {
|
if(cps != null) {
|
||||||
return getFieldValue(cps, cps_unloadqueue, null);
|
return getFieldValue(cps, cps_unloadqueue, null);
|
||||||
}
|
}
|
||||||
|
|
@ -293,12 +293,12 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper {
|
||||||
public Object[] getBiomeBaseFromSnapshot(ChunkSnapshot css) {
|
public Object[] getBiomeBaseFromSnapshot(ChunkSnapshot css) {
|
||||||
return (Object[])getFieldValue(css, ccss_biome, null);
|
return (Object[])getFieldValue(css, ccss_biome, null);
|
||||||
}
|
}
|
||||||
public boolean isCraftChunkSnapshot(ChunkSnapshot css) {
|
// public boolean isCraftChunkSnapshot(ChunkSnapshot css) {
|
||||||
if(craftchunksnapshot != null) {
|
// if(craftchunksnapshot != null) {
|
||||||
return craftchunksnapshot.isAssignableFrom(css.getClass());
|
// return craftchunksnapshot.isAssignableFrom(css.getClass());
|
||||||
}
|
// }
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
/** Remove entities from given chunk */
|
/** Remove entities from given chunk */
|
||||||
public void removeEntitiesFromChunk(Chunk c) {
|
public void removeEntitiesFromChunk(Chunk c) {
|
||||||
Object omsc = callMethod(c, cc_gethandle, nullargs, null);
|
Object omsc = callMethod(c, cc_gethandle, nullargs, null);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,404 @@
|
||||||
|
package org.dynmap.bukkit;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Chunk;
|
||||||
|
import org.bukkit.ChunkSnapshot;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class BukkitVersionHelperGlowstone extends BukkitVersionHelper {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object[] getBiomeBaseList() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return new Object[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getBiomeBaseTemperature(Object bb) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getBiomeBaseHumidity(Object bb) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getBiomeBaseIDString(Object bb) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getBiomeBaseID(Object bb) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getUnloadQueue(World world) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInUnloadQueue(Object unloadqueue, int x, int z) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object[] getBiomeBaseFromSnapshot(ChunkSnapshot css) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return new Integer[256];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeEntitiesFromChunk(Chunk c) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getInhabitedTicks(Chunk c) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map getTileEntitiesForChunk(Chunk c) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTileEntityX(Object te) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTileEntityY(Object te) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTileEntityZ(Object te) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object readTileEntityNBT(Object te) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getFieldValue(Object nbt, String field) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void unloadChunkNoSave(World w, Chunk c, int cx, int cz) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] getBlockShortNames() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String[] bnames = {
|
||||||
|
"Ocean",
|
||||||
|
"Plains",
|
||||||
|
"Desert",
|
||||||
|
"Extreme Hills",
|
||||||
|
"Forest",
|
||||||
|
"Taiga",
|
||||||
|
"Swampland",
|
||||||
|
"River",
|
||||||
|
"Hell",
|
||||||
|
"Sky",
|
||||||
|
"FrozenOcean",
|
||||||
|
"FrozenRiver",
|
||||||
|
"Ice Plains",
|
||||||
|
"Ice Mountains",
|
||||||
|
"MushroomIsland",
|
||||||
|
"MushroomIslandShore",
|
||||||
|
"Beach",
|
||||||
|
"DesertHills",
|
||||||
|
"ForestHills",
|
||||||
|
"TaigaHills",
|
||||||
|
"Extreme Hills Edge",
|
||||||
|
"Jungle",
|
||||||
|
"JungleHills",
|
||||||
|
"JungleEdge",
|
||||||
|
"Deep Ocean",
|
||||||
|
"Stone Beach",
|
||||||
|
"Cold Beach",
|
||||||
|
"Birch Forest",
|
||||||
|
"Birch Forest Hills",
|
||||||
|
"Roofed Forest",
|
||||||
|
"Cold Taiga",
|
||||||
|
"Cold Taiga Hills",
|
||||||
|
"Mega Taiga",
|
||||||
|
"Mega Taiga Hills",
|
||||||
|
"Extreme Hills+",
|
||||||
|
"Savanna",
|
||||||
|
"Savanna Plateau",
|
||||||
|
"Mesa",
|
||||||
|
"Mesa Plateau F",
|
||||||
|
"Mesa Plateau",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"Sunflower Plains",
|
||||||
|
"Desert M",
|
||||||
|
"Extreme Hills M",
|
||||||
|
"Flower Forest",
|
||||||
|
"Taiga M",
|
||||||
|
"Swampland M",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"Ice Plains Spikes",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"Jungle M",
|
||||||
|
null,
|
||||||
|
"JungleEdge M",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"Birch Forest M",
|
||||||
|
"Birch Forest Hills M",
|
||||||
|
"Roofed Forest M",
|
||||||
|
"Cold Taiga M",
|
||||||
|
null,
|
||||||
|
"Mega Spruce Taiga",
|
||||||
|
"Mega Spruce Taiga",
|
||||||
|
"Extreme Hills+ M",
|
||||||
|
"Savanna M",
|
||||||
|
"Savanna Plateau M",
|
||||||
|
"Mesa (Bryce)",
|
||||||
|
"Mesa Plateau F M",
|
||||||
|
"Mesa Plateau M",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] getBiomeNames() {
|
||||||
|
return bnames;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getBlockMaterialMap() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Player[] getOnlinePlayers() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return Bukkit.getServer().getOnlinePlayers();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getHealth(Player p) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -795,7 +795,7 @@ public class NewMapChunkCache extends MapChunkCache {
|
||||||
public int loadChunks(int max_to_load) {
|
public int loadChunks(int max_to_load) {
|
||||||
if(dw.isLoaded() == false)
|
if(dw.isLoaded() == false)
|
||||||
return 0;
|
return 0;
|
||||||
Object queue = helper.getUnloadQueue(helper.getNMSWorld(w));
|
Object queue = helper.getUnloadQueue(w);
|
||||||
|
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
if(iterator == null)
|
if(iterator == null)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue