summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server')
-rw-r--r--src/main/java/net/minecraft/server/EntityPlayer.java13
-rw-r--r--src/main/java/net/minecraft/server/MinecraftServer.java4
-rw-r--r--src/main/java/net/minecraft/server/NetLoginHandler.java2
3 files changed, 16 insertions, 3 deletions
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index f839b20d..5cd8ab1d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -483,6 +483,19 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
// CraftBukkit start
+ public long timeOffset = 0;
+ public boolean relativeTime = true;
+
+ public long getPlayerTime() {
+ if (relativeTime) {
+ // Adds timeOffset to the current server time.
+ return world.getTime() + timeOffset;
+ } else {
+ // Adds timeOffset to the beginning of this day.
+ return world.getTime() - (world.getTime() % 24000) + timeOffset;
+ }
+ }
+
@Override
public String toString() {
return super.toString() + "(" + name + " at " + locX + "," + locY + "," + locZ + ")";
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8df7fb45..bdd733c8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -177,7 +177,7 @@ public class MinecraftServer implements Runnable, ICommandListener {
File newWorld = new File(new File(name), dim);
File oldWorld = new File(new File(s), dim);
-
+
if ((!newWorld.isDirectory()) && (oldWorld.isDirectory())) {
log.info("---- Migration of old " + worldType + " folder required ----");
log.info("Unfortunately due to the way that Minecraft implemented multiworld support in 1.6, Bukkit requires that you move your " + worldType + " folder to a new location in order to operate correctly.");
@@ -411,7 +411,7 @@ public class MinecraftServer implements Runnable, ICommandListener {
// CraftBukkit start - only send timeupdates to the people in that world
for (int i = 0; i < this.serverConfigurationManager.players.size(); ++i) {
EntityPlayer entityplayer = (EntityPlayer) this.serverConfigurationManager.players.get(i);
- entityplayer.netServerHandler.sendPacket(new Packet4UpdateTime(entityplayer.world.getTime()));
+ entityplayer.netServerHandler.sendPacket(new Packet4UpdateTime(entityplayer.getPlayerTime())); // Add support for per player time
}
}
diff --git a/src/main/java/net/minecraft/server/NetLoginHandler.java b/src/main/java/net/minecraft/server/NetLoginHandler.java
index 88d9565c..473b4989 100644
--- a/src/main/java/net/minecraft/server/NetLoginHandler.java
+++ b/src/main/java/net/minecraft/server/NetLoginHandler.java
@@ -97,7 +97,7 @@ public class NetLoginHandler extends NetHandler {
this.server.serverConfigurationManager.c(entityplayer);
netserverhandler.a(entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch);
this.server.networkListenThread.a(netserverhandler);
- netserverhandler.sendPacket(new Packet4UpdateTime(worldserver.getTime()));
+ netserverhandler.sendPacket(new Packet4UpdateTime(entityplayer.getPlayerTime())); // CraftBukkit - add support for player specific time
entityplayer.syncInventory();
}