Fixed allow-nether being ignored

This commit is contained in:
Nathan Adams 2011-11-24 18:48:01 +00:00
parent de7402ea8e
commit c6beae8872
3 changed files with 14 additions and 10 deletions

View File

@ -203,18 +203,18 @@ public class MinecraftServer implements Runnable, ICommandListener, IMinecraftSe
log.info("Default game type: " + j); log.info("Default game type: " + j);
// CraftBukkit start (+ removed worldsettings and servernbtmanager) // CraftBukkit start (+ removed worldsettings and servernbtmanager)
int worldCount = 2; int worldCount = 3;
if (this.propertyManager.getBoolean("allow-nether", true)) {
worldCount++;
}
for (int k = 0; k < worldCount; ++k) { for (int k = 0; k < worldCount; ++k) {
WorldServer world; WorldServer world;
int dimension = 0; int dimension = 0;
if (k == 1) { if (k == 1) {
dimension = -1; if (this.propertyManager.getBoolean("allow-nether", true)) {
dimension = -1;
} else {
continue;
}
} }
if (k == 2) { if (k == 2) {

View File

@ -217,10 +217,10 @@ public class ServerConfigurationManager {
// CraftBukkit start // CraftBukkit start
public EntityPlayer moveToWorld(EntityPlayer entityplayer, int i, boolean flag) { public EntityPlayer moveToWorld(EntityPlayer entityplayer, int i, boolean flag) {
return this.moveToWorld(entityplayer, i, null); return this.moveToWorld(entityplayer, i, flag, null);
} }
public EntityPlayer moveToWorld(EntityPlayer entityplayer, int i, Location location) { public EntityPlayer moveToWorld(EntityPlayer entityplayer, int i, boolean flag, Location location) {
this.server.getTracker(entityplayer.dimension).untrackPlayer(entityplayer); this.server.getTracker(entityplayer.dimension).untrackPlayer(entityplayer);
// this.server.getTracker(entityplayer.dimension).untrackEntity(entityplayer); // CraftBukkit // this.server.getTracker(entityplayer.dimension).untrackEntity(entityplayer); // CraftBukkit
this.getPlayerManager(entityplayer.dimension).removePlayer(entityplayer); this.getPlayerManager(entityplayer.dimension).removePlayer(entityplayer);
@ -232,6 +232,10 @@ public class ServerConfigurationManager {
EntityPlayer entityplayer1 = entityplayer; EntityPlayer entityplayer1 = entityplayer;
org.bukkit.World fromWorld = entityplayer1.getBukkitEntity().getWorld(); org.bukkit.World fromWorld = entityplayer1.getBukkitEntity().getWorld();
if (flag) {
entityplayer1.copyTo(entityplayer);
}
if (location == null) { if (location == null) {
boolean isBedSpawn = false; boolean isBedSpawn = false;
CraftWorld cworld = (CraftWorld) this.server.server.getWorld(entityplayer.spawnWorld); CraftWorld cworld = (CraftWorld) this.server.server.getWorld(entityplayer.spawnWorld);
@ -328,7 +332,7 @@ public class ServerConfigurationManager {
finalLocation = event.getPortalTravelAgent().findOrCreate(finalLocation); finalLocation = event.getPortalTravelAgent().findOrCreate(finalLocation);
} }
toWorld = ((CraftWorld) finalLocation.getWorld()).getHandle(); toWorld = ((CraftWorld) finalLocation.getWorld()).getHandle();
this.moveToWorld(entityplayer, toWorld.dimension, finalLocation); this.moveToWorld(entityplayer, toWorld.dimension, true, finalLocation);
// CraftBukkit end // CraftBukkit end
} }

View File

@ -324,7 +324,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (fromWorld == toWorld) { if (fromWorld == toWorld) {
entity.netServerHandler.teleport(to); entity.netServerHandler.teleport(to);
} else { } else {
server.getHandle().moveToWorld(entity, toWorld.dimension, to); server.getHandle().moveToWorld(entity, toWorld.dimension, true, to);
} }
return true; return true;
} }