2012-02-24 10:38:16 +00:00
|
|
|
--- ../src_base/minecraft_server/net/minecraft/src/ServerConfigurationManager.java 0000-00-00 00:00:00.000000000 -0000
|
|
|
|
+++ ../src_work/minecraft_server/net/minecraft/src/ServerConfigurationManager.java 0000-00-00 00:00:00.000000000 -0000
|
2012-03-05 04:46:15 +00:00
|
|
|
@@ -12,6 +12,7 @@
|
|
|
|
import java.util.Set;
|
2012-02-24 10:38:16 +00:00
|
|
|
import java.util.logging.Logger;
|
|
|
|
import net.minecraft.server.MinecraftServer;
|
|
|
|
+import net.minecraft.src.forge.DimensionManager;
|
|
|
|
|
|
|
|
public class ServerConfigurationManager
|
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
@@ -25,7 +26,7 @@
|
2012-02-24 10:38:16 +00:00
|
|
|
private MinecraftServer mcServer;
|
2012-03-05 04:46:15 +00:00
|
|
|
|
|
|
|
/** Reference to the PlayerManager object. */
|
|
|
|
- private PlayerManager[] playerManagerObj = new PlayerManager[3];
|
|
|
|
+ //private PlayerManager[] playerManagerObj = new PlayerManager[3];
|
|
|
|
|
|
|
|
/** the maximum amount of players that can be connected */
|
2012-02-24 10:38:16 +00:00
|
|
|
private int maxPlayers;
|
2012-03-05 04:46:15 +00:00
|
|
|
@@ -71,9 +72,11 @@
|
|
|
|
this.opFile = par1MinecraftServer.getFile("ops.txt");
|
|
|
|
this.whitelistPlayersFile = par1MinecraftServer.getFile("white-list.txt");
|
|
|
|
int var2 = par1MinecraftServer.propertyManagerObj.getIntProperty("view-distance", 10);
|
2012-02-24 10:38:16 +00:00
|
|
|
+ /*
|
2012-03-05 04:46:15 +00:00
|
|
|
this.playerManagerObj[0] = new PlayerManager(par1MinecraftServer, 0, var2);
|
|
|
|
this.playerManagerObj[1] = new PlayerManager(par1MinecraftServer, -1, var2);
|
|
|
|
this.playerManagerObj[2] = new PlayerManager(par1MinecraftServer, 1, var2);
|
2012-02-24 10:38:16 +00:00
|
|
|
+ */
|
2012-03-05 04:46:15 +00:00
|
|
|
this.maxPlayers = par1MinecraftServer.propertyManagerObj.getIntProperty("max-players", 20);
|
|
|
|
this.whiteListEnforced = par1MinecraftServer.propertyManagerObj.getBooleanProperty("white-list", false);
|
|
|
|
this.readBannedPlayers();
|
|
|
|
@@ -100,9 +103,10 @@
|
|
|
|
*/
|
|
|
|
public void joinNewPlayerManager(EntityPlayerMP par1EntityPlayerMP)
|
2012-02-24 10:38:16 +00:00
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
- this.playerManagerObj[0].removePlayer(par1EntityPlayerMP);
|
|
|
|
- this.playerManagerObj[1].removePlayer(par1EntityPlayerMP);
|
|
|
|
- this.playerManagerObj[2].removePlayer(par1EntityPlayerMP);
|
2012-02-24 10:38:16 +00:00
|
|
|
+ for (World world : DimensionManager.getWorlds())
|
|
|
|
+ {
|
2012-03-05 04:46:15 +00:00
|
|
|
+ ((WorldServer)world).playerManager.removePlayer(par1EntityPlayerMP);
|
2012-02-24 10:38:16 +00:00
|
|
|
+ }
|
2012-03-05 04:46:15 +00:00
|
|
|
this.getPlayerManager(par1EntityPlayerMP.dimension).addPlayer(par1EntityPlayerMP);
|
|
|
|
WorldServer var2 = this.mcServer.getWorldManager(par1EntityPlayerMP.dimension);
|
|
|
|
var2.chunkProviderServer.loadChunk((int)par1EntityPlayerMP.posX >> 4, (int)par1EntityPlayerMP.posZ >> 4);
|
|
|
|
@@ -110,7 +114,7 @@
|
2012-02-24 10:38:16 +00:00
|
|
|
|
|
|
|
public int getMaxTrackingDistance()
|
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
- return this.playerManagerObj[0].getMaxTrackingDistance();
|
|
|
|
+ return getPlayerManager(0).getMaxTrackingDistance();
|
2012-02-24 10:38:16 +00:00
|
|
|
}
|
|
|
|
|
2012-03-05 04:46:15 +00:00
|
|
|
/**
|
|
|
|
@@ -118,7 +122,8 @@
|
|
|
|
*/
|
|
|
|
private PlayerManager getPlayerManager(int par1)
|
2012-02-24 10:38:16 +00:00
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
- return par1 == -1 ? this.playerManagerObj[1] : (par1 == 0 ? this.playerManagerObj[0] : (par1 == 1 ? this.playerManagerObj[2] : null));
|
|
|
|
+ WorldServer world = (WorldServer)DimensionManager.getWorld(par1);
|
|
|
|
+ return (world == null ? null : world.playerManager);
|
2012-02-24 10:38:16 +00:00
|
|
|
}
|
|
|
|
|
2012-03-05 04:46:15 +00:00
|
|
|
/**
|
|
|
|
@@ -285,6 +290,10 @@
|
|
|
|
*/
|
|
|
|
public void sendPlayerToOtherDimension(EntityPlayerMP par1EntityPlayerMP, int par2)
|
2012-02-24 10:38:16 +00:00
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
+ sendPlayerToOtherDimension(par1EntityPlayerMP, par2, new Teleporter());
|
2012-02-24 10:38:16 +00:00
|
|
|
+ }
|
2012-03-05 04:46:15 +00:00
|
|
|
+ public void sendPlayerToOtherDimension(EntityPlayerMP par1EntityPlayerMP, int par2, Teleporter teleporter)
|
2012-02-24 10:38:16 +00:00
|
|
|
+ {
|
2012-03-05 04:46:15 +00:00
|
|
|
int var3 = par1EntityPlayerMP.dimension;
|
|
|
|
WorldServer var4 = this.mcServer.getWorldManager(par1EntityPlayerMP.dimension);
|
|
|
|
par1EntityPlayerMP.dimension = par2;
|
|
|
|
@@ -292,33 +301,14 @@
|
2012-03-07 17:45:31 +00:00
|
|
|
par1EntityPlayerMP.playerNetServerHandler.sendPacket(new Packet9Respawn(par1EntityPlayerMP.dimension, (byte)par1EntityPlayerMP.worldObj.difficultySetting, var5.getWorldInfo().getTerrainType(), var5.getWorldHeight(), par1EntityPlayerMP.itemInWorldManager.getGameType()));
|
2012-03-05 04:46:15 +00:00
|
|
|
var4.removePlayer(par1EntityPlayerMP);
|
|
|
|
par1EntityPlayerMP.isDead = false;
|
|
|
|
- double var6 = par1EntityPlayerMP.posX;
|
|
|
|
- double var8 = par1EntityPlayerMP.posZ;
|
|
|
|
- double var10 = 8.0D;
|
|
|
|
-
|
|
|
|
- if (par1EntityPlayerMP.dimension == -1)
|
2012-02-24 10:38:16 +00:00
|
|
|
- {
|
2012-03-05 04:46:15 +00:00
|
|
|
- var6 /= var10;
|
|
|
|
- var8 /= var10;
|
|
|
|
- par1EntityPlayerMP.setLocationAndAngles(var6, par1EntityPlayerMP.posY, var8, par1EntityPlayerMP.rotationYaw, par1EntityPlayerMP.rotationPitch);
|
|
|
|
|
|
|
|
- if (par1EntityPlayerMP.isEntityAlive())
|
2012-02-24 10:38:16 +00:00
|
|
|
- {
|
2012-03-05 04:46:15 +00:00
|
|
|
- var4.updateEntityWithOptionalForce(par1EntityPlayerMP, false);
|
2012-02-24 10:38:16 +00:00
|
|
|
- }
|
|
|
|
- }
|
2012-03-05 04:46:15 +00:00
|
|
|
- else if (par1EntityPlayerMP.dimension == 0)
|
2012-02-24 10:38:16 +00:00
|
|
|
- {
|
2012-03-05 04:46:15 +00:00
|
|
|
- var6 *= var10;
|
|
|
|
- var8 *= var10;
|
|
|
|
- par1EntityPlayerMP.setLocationAndAngles(var6, par1EntityPlayerMP.posY, var8, par1EntityPlayerMP.rotationYaw, par1EntityPlayerMP.rotationPitch);
|
|
|
|
+ WorldProvider pOld = DimensionManager.getProvider(var3);
|
|
|
|
+ WorldProvider pNew = DimensionManager.getProvider(par2);
|
|
|
|
+ double moveFactor = pOld.getMovementFactor() / pNew.getMovementFactor();
|
|
|
|
+ double var6 = par1EntityPlayerMP.posX * moveFactor;
|
|
|
|
+ double var8 = par1EntityPlayerMP.posZ * moveFactor;
|
|
|
|
|
|
|
|
- if (par1EntityPlayerMP.isEntityAlive())
|
2012-02-24 10:38:16 +00:00
|
|
|
- {
|
2012-03-05 04:46:15 +00:00
|
|
|
- var4.updateEntityWithOptionalForce(par1EntityPlayerMP, false);
|
2012-02-24 10:38:16 +00:00
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else
|
2012-03-05 04:46:15 +00:00
|
|
|
+ if (par1EntityPlayerMP.dimension == 1)
|
2012-02-24 10:38:16 +00:00
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
ChunkCoordinates var12 = var5.getEntrancePortalLocation();
|
|
|
|
var6 = (double)var12.posX;
|
|
|
|
@@ -338,7 +328,7 @@
|
|
|
|
par1EntityPlayerMP.setLocationAndAngles(var6, par1EntityPlayerMP.posY, var8, par1EntityPlayerMP.rotationYaw, par1EntityPlayerMP.rotationPitch);
|
|
|
|
var5.updateEntityWithOptionalForce(par1EntityPlayerMP, false);
|
|
|
|
var5.chunkProviderServer.chunkLoadOverride = true;
|
|
|
|
- (new Teleporter()).placeInPortal(var5, par1EntityPlayerMP);
|
|
|
|
+ teleporter.placeInPortal(var5, par1EntityPlayerMP);
|
|
|
|
var5.chunkProviderServer.chunkLoadOverride = false;
|
2012-02-24 10:38:16 +00:00
|
|
|
}
|
2012-03-05 04:46:15 +00:00
|
|
|
|
|
|
|
@@ -366,9 +356,9 @@
|
|
|
|
this.sendPacketToAllPlayers(new Packet201PlayerInfo(var1.username, true, var1.ping));
|
|
|
|
}
|
|
|
|
|
|
|
|
- for (int var2 = 0; var2 < this.playerManagerObj.length; ++var2)
|
2012-02-24 10:38:16 +00:00
|
|
|
+ for (World world : DimensionManager.getWorlds())
|
|
|
|
{
|
2012-03-05 04:46:15 +00:00
|
|
|
- this.playerManagerObj[var2].updatePlayerInstances();
|
2012-02-24 10:38:16 +00:00
|
|
|
+ ((WorldServer)world).playerManager.updatePlayerInstances();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|