summaryrefslogtreecommitdiffstats
path: root/nms-patches/PlayerList.patch
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2018-07-15 10:00:00 +1000
committermd_5 <git@md-5.net>2018-07-15 10:00:00 +1000
commit421c1728c81e2f729dff88da2ac96535d2b8e5e8 (patch)
tree6c51d93e811d1eb86b68461a42fc5cf03b168b0c /nms-patches/PlayerList.patch
parent57ab4cfc6f4ff526d44319d9b8c79f6848db2de7 (diff)
downloadcraftbukkit-421c1728c81e2f729dff88da2ac96535d2b8e5e8.tar
craftbukkit-421c1728c81e2f729dff88da2ac96535d2b8e5e8.tar.gz
craftbukkit-421c1728c81e2f729dff88da2ac96535d2b8e5e8.tar.lz
craftbukkit-421c1728c81e2f729dff88da2ac96535d2b8e5e8.tar.xz
craftbukkit-421c1728c81e2f729dff88da2ac96535d2b8e5e8.zip
Update to Minecraft 1.13-pre7
Diffstat (limited to 'nms-patches/PlayerList.patch')
-rw-r--r--nms-patches/PlayerList.patch258
1 files changed, 119 insertions, 139 deletions
diff --git a/nms-patches/PlayerList.patch b/nms-patches/PlayerList.patch
index b50031bc..29ed2522 100644
--- a/nms-patches/PlayerList.patch
+++ b/nms-patches/PlayerList.patch
@@ -74,8 +74,8 @@
+ // this.p = Maps.newHashMap();
+ // CraftBukkit end
this.server = minecraftserver;
- this.k.a(false);
- this.l.a(false);
+ this.getProfileBans().a(true);
+ this.getIPBans().a(true);
@@ -65,6 +100,12 @@
usercache.a(gameprofile);
@@ -93,9 +93,9 @@
s1 = networkmanager.getSocketAddress().toString();
}
-- PlayerList.f.info("{}[{}] logged in with entity id {} at ({}, {}, {})", entityplayer.getName(), s1, Integer.valueOf(entityplayer.getId()), Double.valueOf(entityplayer.locX), Double.valueOf(entityplayer.locY), Double.valueOf(entityplayer.locZ));
+- PlayerList.f.info("{}[{}] logged in with entity id {} at ({}, {}, {})", entityplayer.getDisplayName().getString(), s1, Integer.valueOf(entityplayer.getId()), Double.valueOf(entityplayer.locX), Double.valueOf(entityplayer.locY), Double.valueOf(entityplayer.locZ));
+ // CraftBukkit - Moved message to after join
-+ // PlayerList.f.info("{}[{}] logged in with entity id {} at ({}, {}, {})", entityplayer.getName(), s1, Integer.valueOf(entityplayer.getId()), Double.valueOf(entityplayer.locX), Double.valueOf(entityplayer.locY), Double.valueOf(entityplayer.locZ));
++ // PlayerList.f.info("{}[{}] logged in with entity id {} at ({}, {}, {})", entityplayer.getDisplayName().getString(), s1, Integer.valueOf(entityplayer.getId()), Double.valueOf(entityplayer.locX), Double.valueOf(entityplayer.locY), Double.valueOf(entityplayer.locZ));
WorldServer worldserver = this.server.getWorldServer(entityplayer.dimension);
WorldData worlddata = worldserver.getWorldData();
@@ -104,49 +104,32 @@
playerconnection.sendPacket(new PacketPlayOutLogin(entityplayer.getId(), entityplayer.playerInteractManager.getGameMode(), worlddata.isHardcore(), worldserver.worldProvider.getDimensionManager().getDimensionID(), worldserver.getDifficulty(), this.getMaxPlayers(), worlddata.getType(), worldserver.getGameRules().getBoolean("reducedDebugInfo")));
+ entityplayer.getBukkitEntity().sendSupportedChannels(); // CraftBukkit
- playerconnection.sendPacket(new PacketPlayOutCustomPayload("MC|Brand", (new PacketDataSerializer(Unpooled.buffer())).a(this.getServer().getServerModName())));
+ playerconnection.sendPacket(new PacketPlayOutCustomPayload(PacketPlayOutCustomPayload.b, (new PacketDataSerializer(Unpooled.buffer())).a(this.getServer().getServerModName())));
playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities));
-@@ -91,17 +134,23 @@
- entityplayer.F().a(entityplayer);
- this.sendScoreboard((ScoreboardServer) worldserver.getScoreboard(), entityplayer);
- this.server.aD();
-- ChatMessage chatmessage;
-+ // CraftBukkit start - login message is handled in the event
-+ // ChatMessage chatmessage;
-
-+ String joinMessage;
- if (entityplayer.getName().equalsIgnoreCase(s)) {
-- chatmessage = new ChatMessage("multiplayer.player.joined", new Object[] { entityplayer.getScoreboardDisplayName()});
-+ // chatmessage = new ChatMessage("multiplayer.player.joined", new Object[] { entityplayer.getScoreboardDisplayName()});
-+ joinMessage = "\u00A7e" + LocaleI18n.a("multiplayer.player.joined", entityplayer.getName());
- } else {
-- chatmessage = new ChatMessage("multiplayer.player.joined.renamed", new Object[] { entityplayer.getScoreboardDisplayName(), s});
-+ // chatmessage = new ChatMessage("multiplayer.player.joined.renamed", new Object[] { entityplayer.getScoreboardDisplayName(), s});
-+ joinMessage = "\u00A7e" + LocaleI18n.a("multiplayer.player.joined.renamed", entityplayer.getName(), s);
+@@ -101,8 +144,10 @@
+ chatmessage = new ChatMessage("multiplayer.player.joined.renamed", new Object[] { entityplayer.getScoreboardDisplayName(), s});
}
-- chatmessage.getChatModifier().setColor(EnumChatFormat.YELLOW);
-- this.sendMessage(chatmessage);
+- this.sendMessage(chatmessage.a(EnumChatFormat.YELLOW));
- this.onPlayerJoin(entityplayer);
-+ // chatmessage.getChatModifier().setColor(EnumChatFormat.YELLOW);
-+ // this.sendMessage(chatmessage);
-+ this.onPlayerJoin(entityplayer, joinMessage);
++ chatmessage.a(EnumChatFormat.YELLOW);
++ this.onPlayerJoin(entityplayer, CraftChatMessage.fromComponent(chatmessage));
+ // CraftBukkit end
+ worldserver = server.getWorldServer(entityplayer.dimension); // CraftBukkit - Update in case join event changed it
playerconnection.a(entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch);
this.b(entityplayer, worldserver);
if (!this.server.getResourcePack().isEmpty()) {
-@@ -153,6 +202,8 @@
+@@ -154,6 +199,8 @@
}
entityplayer.syncInventory();
+ // CraftBukkit - Moved from above, added world
-+ PlayerList.f.info(entityplayer.getName() + "[" + s1 + "] logged in with entity id " + entityplayer.getId() + " at ([" + entityplayer.world.worldData.getName() + "]" + entityplayer.locX + ", " + entityplayer.locY + ", " + entityplayer.locZ + ")");
++ PlayerList.f.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", entityplayer.getDisplayName().getString(), s1, Integer.valueOf(entityplayer.getId()), entityplayer.world.worldData.getName(), Double.valueOf(entityplayer.locX), Double.valueOf(entityplayer.locY), Double.valueOf(entityplayer.locZ));
}
public void sendScoreboard(ScoreboardServer scoreboardserver, EntityPlayer entityplayer) {
-@@ -185,26 +236,27 @@
+@@ -186,26 +233,27 @@
}
public void setPlayerFileData(WorldServer[] aworldserver) {
@@ -179,7 +162,7 @@
}
public void b(WorldBorder worldborder, double d0) {}
-@@ -237,7 +289,7 @@
+@@ -238,7 +286,7 @@
@Nullable
public NBTTagCompound a(EntityPlayer entityplayer) {
@@ -187,8 +170,8 @@
+ NBTTagCompound nbttagcompound = this.server.worlds.get(0).getWorldData().h(); // CraftBukkit
NBTTagCompound nbttagcompound1;
- if (entityplayer.getName().equals(this.server.Q()) && nbttagcompound != null) {
-@@ -253,13 +305,13 @@
+ if (entityplayer.getDisplayName().getString().equals(this.server.I()) && nbttagcompound != null) {
+@@ -254,13 +302,13 @@
protected void savePlayerFile(EntityPlayer entityplayer) {
this.playerFileData.save(entityplayer);
@@ -196,7 +179,7 @@
+ ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) entityplayer.getStatisticManager(); // CraftBukkit
if (serverstatisticmanager != null) {
- serverstatisticmanager.b();
+ serverstatisticmanager.a();
}
- AdvancementDataPlayer advancementdataplayer = (AdvancementDataPlayer) this.p.get(entityplayer.getUniqueID());
@@ -204,7 +187,7 @@
if (advancementdataplayer != null) {
advancementdataplayer.c();
-@@ -267,28 +319,79 @@
+@@ -268,29 +316,80 @@
}
@@ -259,23 +242,25 @@
- worldserver.addEntity(entityplayer);
- this.a(entityplayer, (WorldServer) null);
+- this.server.aR().a(entityplayer);
+ // CraftBukkit start - Only add if the player wasn't moved in the event
+ if (entityplayer.world == worldserver && !worldserver.players.contains(entityplayer)) {
+ worldserver.addEntity(entityplayer);
+ this.a(entityplayer, (WorldServer) null);
++ this.server.aR().a(entityplayer);
+ }
+ // CraftBukkit end
}
public void d(EntityPlayer entityplayer) {
- entityplayer.x().getPlayerChunkMap().movePlayer(entityplayer);
+ entityplayer.getWorldServer().getPlayerChunkMap().movePlayer(entityplayer);
}
- public void disconnect(EntityPlayer entityplayer) {
+ public String disconnect(EntityPlayer entityplayer) { // CraftBukkit - return string
- WorldServer worldserver = entityplayer.x();
+ WorldServer worldserver = entityplayer.getWorldServer();
- entityplayer.b(StatisticList.f);
+ entityplayer.a(StatisticList.LEAVE_GAME);
+
+ // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
+ org.bukkit.craftbukkit.event.CraftEventFactory.handleInventoryCloseEvent(entityplayer);
@@ -289,8 +274,8 @@
+
this.savePlayerFile(entityplayer);
if (entityplayer.isPassenger()) {
- Entity entity = entityplayer.getVehicle();
-@@ -318,17 +421,67 @@
+ Entity entity = entityplayer.getRootVehicle();
+@@ -321,18 +420,68 @@
if (entityplayer1 == entityplayer) {
this.j.remove(uuid);
@@ -324,9 +309,13 @@
+ return playerQuitEvent.getQuitMessage(); // CraftBukkit
}
-- public String attemptLogin(SocketAddress socketaddress, GameProfile gameprofile) {
+- @Nullable
+- public IChatBaseComponent attemptLogin(SocketAddress socketaddress, GameProfile gameprofile) {
+ // CraftBukkit start - Whole method, SocketAddress to LoginListener, added hostname to signature, return EntityPlayer
+ public EntityPlayer attemptLogin(LoginListener loginlistener, GameProfile gameprofile, String hostname) {
+ ChatMessage chatmessage;
+
+- if (this.k.isBanned(gameprofile)) {
+ // Moved from processLogin
+ UUID uuid = EntityHuman.a(gameprofile);
+ ArrayList arraylist = Lists.newArrayList();
@@ -353,52 +342,50 @@
+ // depending on the outcome.
+ SocketAddress socketaddress = loginlistener.networkManager.getSocketAddress();
+
-+ EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), gameprofile, new PlayerInteractManager(server.getWorldServer(0)));
++ EntityPlayer entity = new EntityPlayer(this.server, this.server.a(DimensionManager.OVERWORLD), gameprofile, new PlayerInteractManager(this.server.a(DimensionManager.OVERWORLD)));
+ Player player = entity.getBukkitEntity();
+ PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress());
- String s;
-
-- if (this.k.isBanned(gameprofile)) {
++
+ if (getProfileBans().isBanned(gameprofile) && !getProfileBans().get(gameprofile).hasExpired()) {
GameProfileBanEntry gameprofilebanentry = (GameProfileBanEntry) this.k.get(gameprofile);
- s = "You are banned from this server!\nReason: " + gameprofilebanentry.getReason();
-@@ -336,10 +489,12 @@
- s = s + "\nYour ban will be removed on " + PlayerList.g.format(gameprofilebanentry.getExpires());
+ chatmessage = new ChatMessage("multiplayer.disconnect.banned.reason", new Object[] { gameprofilebanentry.getReason()});
+@@ -340,10 +489,12 @@
+ chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned.expiration", new Object[] { PlayerList.g.format(gameprofilebanentry.getExpires())}));
}
-- return s;
-+ // return s;
-+ event.disallow(PlayerLoginEvent.Result.KICK_BANNED, s);
+- return chatmessage;
++ // return chatmessage;
++ event.disallow(PlayerLoginEvent.Result.KICK_BANNED, CraftChatMessage.fromComponent(chatmessage));
} else if (!this.isWhitelisted(gameprofile)) {
-- return "You are not white-listed on this server!";
+- return new ChatMessage("multiplayer.disconnect.not_whitelisted", new Object[0]);
- } else if (this.l.isBanned(socketaddress)) {
-+ // return "You are not white-listed on this server!";
-+ event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, "You are not white-listed on this server!");
++ chatmessage = new ChatMessage("multiplayer.disconnect.not_whitelisted", new Object[0]);
++ event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, CraftChatMessage.fromComponent(chatmessage));
+ } else if (getIPBans().isBanned(socketaddress) && !getIPBans().get(socketaddress).hasExpired()) {
IpBanEntry ipbanentry = this.l.get(socketaddress);
- s = "Your IP address is banned from this server!\nReason: " + ipbanentry.getReason();
-@@ -347,13 +502,25 @@
- s = s + "\nYour ban will be removed on " + PlayerList.g.format(ipbanentry.getExpires());
+ chatmessage = new ChatMessage("multiplayer.disconnect.banned_ip.reason", new Object[] { ipbanentry.getReason()});
+@@ -351,13 +502,25 @@
+ chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned_ip.expiration", new Object[] { PlayerList.g.format(ipbanentry.getExpires())}));
}
-- return s;
-+ // return s;
-+ event.disallow(PlayerLoginEvent.Result.KICK_BANNED, s);
+- return chatmessage;
++ // return chatmessage;
++ event.disallow(PlayerLoginEvent.Result.KICK_BANNED, CraftChatMessage.fromComponent(chatmessage));
} else {
-- return this.players.size() >= this.maxPlayers && !this.f(gameprofile) ? "The server is full!" : null;
-+ // return this.players.size() >= this.maxPlayers && !this.f(gameprofile) ? "The server is full!" : null;
+- return this.players.size() >= this.maxPlayers && !this.f(gameprofile) ? new ChatMessage("multiplayer.disconnect.server_full", new Object[0]) : null;
++ // return this.players.size() >= this.maxPlayers && !this.f(gameprofile) ? new ChatMessage("multiplayer.disconnect.server_full", new Object[0]) : null;
+ if (this.players.size() >= this.maxPlayers && !this.f(gameprofile)) {
+ event.disallow(PlayerLoginEvent.Result.KICK_FULL, "The server is full");
+ }
- }
++ }
+
+ cserver.getPluginManager().callEvent(event);
+ if (event.getResult() != PlayerLoginEvent.Result.ALLOWED) {
+ loginlistener.disconnect(event.getKickMessage());
+ return null;
-+ }
+ }
+ return entity;
}
@@ -408,10 +395,10 @@
UUID uuid = EntityHuman.a(gameprofile);
ArrayList arraylist = Lists.newArrayList();
-@@ -388,17 +555,27 @@
+@@ -392,17 +555,27 @@
}
- return new EntityPlayer(this.server, this.server.getWorldServer(0), gameprofile, (PlayerInteractManager) object);
+ return new EntityPlayer(this.server, this.server.a(DimensionManager.OVERWORLD), gameprofile, (PlayerInteractManager) object);
+ */
+ return player;
+ // CraftBukkit end
@@ -424,10 +411,10 @@
+
+ public EntityPlayer moveToWorld(EntityPlayer entityplayer, int i, boolean flag, Location location, boolean avoidSuffocation) {
+ entityplayer.stopRiding(); // CraftBukkit
- entityplayer.x().getTracker().untrackPlayer(entityplayer);
-- entityplayer.x().getTracker().untrackEntity(entityplayer);
-+ // entityplayer.x().getTracker().untrackEntity(entityplayer); // CraftBukkit
- entityplayer.x().getPlayerChunkMap().removePlayer(entityplayer);
+ entityplayer.getWorldServer().getTracker().untrackPlayer(entityplayer);
+- entityplayer.getWorldServer().getTracker().untrackEntity(entityplayer);
++ // entityplayer.getWorldServer().getTracker().untrackEntity(entityplayer); // CraftBukkit
+ entityplayer.getWorldServer().getPlayerChunkMap().removePlayer(entityplayer);
this.players.remove(entityplayer);
this.server.getWorldServer(entityplayer.dimension).removeEntity(entityplayer);
BlockPosition blockposition = entityplayer.getBed();
@@ -437,7 +424,7 @@
entityplayer.dimension = i;
Object object;
-@@ -409,6 +586,11 @@
+@@ -413,6 +586,11 @@
}
EntityPlayer entityplayer1 = new EntityPlayer(this.server, this.server.getWorldServer(entityplayer.dimension), entityplayer.getProfile(), (PlayerInteractManager) object);
@@ -449,7 +436,7 @@
entityplayer1.playerConnection = entityplayer.playerConnection;
entityplayer1.copyFrom(entityplayer, flag);
-@@ -423,43 +605,166 @@
+@@ -426,43 +604,166 @@
entityplayer1.addScoreboardTag(s);
}
@@ -484,7 +471,7 @@
+
+ if (location == null) {
+ cworld = (CraftWorld) this.server.server.getWorlds().get(0);
-+ blockposition = entityplayer1.getSpawnPoint(this.server, cworld.getHandle());
++ blockposition = entityplayer1.getSpawnPoint(cworld.getHandle());
+ location = new Location(cworld, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.1F), (double) ((float) blockposition.getZ() + 0.5F));
}
+
@@ -503,8 +490,8 @@
worldserver.getChunkProviderServer().getChunkAt((int) entityplayer1.locX >> 4, (int) entityplayer1.locZ >> 4);
-- while (!worldserver.getCubes(entityplayer1, entityplayer1.getBoundingBox()).isEmpty() && entityplayer1.locY < 256.0D) {
-+ while (avoidSuffocation && !worldserver.getCubes(entityplayer1, entityplayer1.getBoundingBox()).isEmpty() && entityplayer1.locY < 256.0D) {
+- while (!worldserver.getCubes(entityplayer1, entityplayer1.getBoundingBox()) && entityplayer1.locY < 256.0D) {
++ while (avoidSuffocation && !worldserver.getCubes(entityplayer1, entityplayer1.getBoundingBox()) && entityplayer1.locY < 256.0D) {
entityplayer1.setPosition(entityplayer1.locX, entityplayer1.locY + 1.0D, entityplayer1.locZ);
}
+ // CraftBukkit start
@@ -549,9 +536,9 @@
+ }
+
+ // Fire advancement trigger
-+ CriterionTriggers.u.a(entityplayer, ((CraftWorld) fromWorld).getHandle().worldProvider.getDimensionManager(), worldserver.worldProvider.getDimensionManager());
-+ if (((CraftWorld) fromWorld).getHandle().worldProvider.getDimensionManager() == DimensionManager.NETHER && worldserver.worldProvider.getDimensionManager() == DimensionManager.OVERWORLD && entityplayer.Q() != null) {
-+ CriterionTriggers.B.a(entityplayer, entityplayer.Q());
++ CriterionTriggers.v.a(entityplayer, ((CraftWorld) fromWorld).getHandle().worldProvider.getDimensionManager(), worldserver.worldProvider.getDimensionManager());
++ if (((CraftWorld) fromWorld).getHandle().worldProvider.getDimensionManager() == DimensionManager.NETHER && worldserver.worldProvider.getDimensionManager() == DimensionManager.OVERWORLD && entityplayer.M() != null) {
++ CriterionTriggers.C.a(entityplayer, entityplayer.M());
+ }
+
+ // Don't fire on respawn
@@ -588,7 +575,7 @@
+ // THE_END -> NORMAL; use bed if available, otherwise default spawn
+ exit = ((org.bukkit.craftbukkit.entity.CraftPlayer) entityplayer.getBukkitEntity()).getBedSpawnLocation();
+ if (exit == null || ((CraftWorld) exit.getWorld()).getHandle().dimension != 0) {
-+ BlockPosition randomSpawn = entityplayer.getSpawnPoint(server, exitWorld);
++ BlockPosition randomSpawn = entityplayer.getSpawnPoint(exitWorld);
+ exit = new Location(exitWorld.getWorld(), randomSpawn.getX(), randomSpawn.getY(), randomSpawn.getZ());
+ } else {
+ exit = exit.add(0.5F, 0.1F, 0.5F); // SPIGOT-3879
@@ -633,7 +620,16 @@
public void f(EntityPlayer entityplayer) {
GameProfile gameprofile = entityplayer.getProfile();
int i = this.isOp(gameprofile) ? this.operators.a(gameprofile) : 0;
-@@ -498,12 +803,111 @@
+@@ -470,7 +771,7 @@
+ boolean flag1 = flag && this.server.I().equalsIgnoreCase(entityplayer.getProfile().getName());
+ int j = flag1 ? 4 : 2;
+
+- i = flag && this.server.worldServer[0].getWorldData().u() ? j : i;
++ i = flag && this.server.worlds.get(0).getWorldData().u() ? j : i; // CraftBukkit
+ i = this.u ? j : i;
+ this.b(entityplayer, i);
+ }
+@@ -504,12 +805,111 @@
}
public void changeWorld(Entity entity, int i, WorldServer worldserver, WorldServer worldserver1) {
@@ -655,13 +651,13 @@
+ double d1 = enter.getZ();
+ double d2 = 8.0D;
+ /*
-+ double d0 = entity.locX;
-+ double d1 = entity.locZ;
-+ double d2 = 8.0D;
-+ float f = entity.yaw;
+ double d0 = entity.locX;
+ double d1 = entity.locZ;
+ double d2 = 8.0D;
+ float f = entity.yaw;
+ */
-+
-+ worldserver.methodProfiler.a("moving");
+
+ worldserver.methodProfiler.a("moving");
+ if (worldserver1.dimension == -1) {
+ d0 = MathHelper.a(d0 / d2, worldserver1.getWorldBorder().b()+ 16.0D, worldserver1.getWorldBorder().d() - 16.0D);
+ d1 = MathHelper.a(d1 / d2, worldserver1.getWorldBorder().c() + 16.0D, worldserver1.getWorldBorder().e() - 16.0D);
@@ -730,13 +726,13 @@
+ int i = worldserver.dimension;
+
+ /*
- double d0 = entity.locX;
- double d1 = entity.locZ;
- double d2 = 8.0D;
- float f = entity.yaw;
++ double d0 = entity.locX;
++ double d1 = entity.locZ;
++ double d2 = 8.0D;
++ float f = entity.yaw;
+ */
-
- worldserver.methodProfiler.a("moving");
++
++ worldserver.methodProfiler.a("moving");
+ entity.setPositionRotation(exit.getX(), exit.getY(), exit.getZ(), exit.getYaw(), exit.getPitch());
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
@@ -745,7 +741,7 @@
if (entity.dimension == -1) {
d0 = MathHelper.a(d0 / 8.0D, worldserver1.getWorldBorder().b() + 16.0D, worldserver1.getWorldBorder().d() - 16.0D);
d1 = MathHelper.a(d1 / 8.0D, worldserver1.getWorldBorder().c() + 16.0D, worldserver1.getWorldBorder().e() - 16.0D);
-@@ -522,6 +926,8 @@
+@@ -528,6 +928,8 @@
BlockPosition blockposition;
if (i == 1) {
@@ -754,13 +750,13 @@
blockposition = worldserver1.getSpawn();
} else {
blockposition = worldserver1.getDimensionSpawn();
-@@ -535,16 +941,27 @@
+@@ -541,16 +943,27 @@
worldserver.entityJoinedWorld(entity, false);
}
}
+ */
- worldserver.methodProfiler.b();
+ worldserver.methodProfiler.e();
if (i != 1) {
worldserver.methodProfiler.a("placing");
+ /*
@@ -785,7 +781,7 @@
worldserver1.entityJoinedWorld(entity, false);
}
-@@ -552,11 +969,23 @@
+@@ -558,11 +971,23 @@
}
entity.spawnIn(worldserver1);
@@ -810,7 +806,7 @@
this.v = 0;
}
-@@ -569,6 +998,25 @@
+@@ -575,6 +1000,25 @@
}
@@ -836,40 +832,24 @@
public void a(Packet<?> packet, int i) {
for (int j = 0; j < this.players.size(); ++j) {
EntityPlayer entityplayer = (EntityPlayer) this.players.get(j);
-@@ -667,11 +1115,23 @@
-
- this.operators.add(new OpListEntry(gameprofile, this.server.q(), this.operators.b(gameprofile)));
- this.b(this.a(gameprofile.getId()), i);
-+ // CraftBukkit start
-+ Player player = server.server.getPlayer(gameprofile.getId());
-+ if (player != null) {
-+ player.recalculatePermissions();
-+ }
-+ // CraftBukkit end
- }
+@@ -677,6 +1121,7 @@
+ entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0));
+ }
- public void removeOp(GameProfile gameprofile) {
- this.operators.remove(gameprofile);
- this.b(this.a(gameprofile.getId()), 0);
-+ // CraftBukkit start
-+ Player player = server.server.getPlayer(gameprofile.getId());
-+ if (player != null) {
-+ player.recalculatePermissions();
-+ }
-+ // CraftBukkit end
++ entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit
+ this.server.getCommandDispatcher().a(entityplayer);
}
- private void b(EntityPlayer entityplayer, int i) {
-@@ -696,7 +1156,7 @@
+@@ -685,7 +1130,7 @@
}
public boolean isOp(GameProfile gameprofile) {
-- return this.operators.d(gameprofile) || this.server.R() && this.server.worldServer[0].getWorldData().u() && this.server.Q().equalsIgnoreCase(gameprofile.getName()) || this.u;
-+ return this.operators.d(gameprofile) || this.server.R() && this.server.worlds.get(0).getWorldData().u() && this.server.Q().equalsIgnoreCase(gameprofile.getName()) || this.u; // CraftBukkit
+- return this.operators.d(gameprofile) || this.server.J() && this.server.worldServer[0].getWorldData().u() && this.server.I().equalsIgnoreCase(gameprofile.getName()) || this.u;
++ return this.operators.d(gameprofile) || this.server.J() && this.server.worlds.get(0).getWorldData().u() && this.server.I().equalsIgnoreCase(gameprofile.getName()) || this.u; // CraftBukkit
}
@Nullable
-@@ -720,6 +1180,12 @@
+@@ -709,6 +1154,12 @@
for (int j = 0; j < this.players.size(); ++j) {
EntityPlayer entityplayer = (EntityPlayer) this.players.get(j);
@@ -882,7 +862,7 @@
if (entityplayer != entityhuman && entityplayer.dimension == i) {
double d4 = d0 - entityplayer.locX;
double d5 = d1 - entityplayer.locY;
-@@ -767,7 +1233,7 @@
+@@ -748,7 +1199,7 @@
public void reloadWhitelist() {}
public void b(EntityPlayer entityplayer, WorldServer worldserver) {
@@ -891,17 +871,17 @@
entityplayer.playerConnection.sendPacket(new PacketPlayOutWorldBorder(worldborder, PacketPlayOutWorldBorder.EnumWorldBorderAction.INITIALIZE));
entityplayer.playerConnection.sendPacket(new PacketPlayOutUpdateTime(worldserver.getTime(), worldserver.getDayTime(), worldserver.getGameRules().getBoolean("doDaylightCycle")));
-@@ -775,16 +1241,21 @@
+@@ -756,16 +1207,21 @@
entityplayer.playerConnection.sendPacket(new PacketPlayOutSpawnPosition(blockposition));
if (worldserver.isRaining()) {
- entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(1, 0.0F));
-- entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(7, worldserver.j(1.0F)));
-- entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(8, worldserver.h(1.0F)));
+- entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(7, worldserver.i(1.0F)));
+- entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(8, worldserver.g(1.0F)));
+ // CraftBukkit start - handle player weather
+ // entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(1, 0.0F));
-+ // entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(7, worldserver.j(1.0F)));
-+ // entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(8, worldserver.h(1.0F)));
++ // entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(7, worldserver.i(1.0F)));
++ // entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(8, worldserver.g(1.0F)));
+ entityplayer.setPlayerWeather(org.bukkit.WeatherType.DOWNFALL, false);
+ entityplayer.updateWeather(-worldserver.o, worldserver.o, -worldserver.q, worldserver.q);
+ // CraftBukkit end
@@ -917,7 +897,7 @@
entityplayer.playerConnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex));
}
-@@ -797,7 +1268,7 @@
+@@ -778,7 +1234,7 @@
}
public String[] getSeenPlayers() {
@@ -926,7 +906,7 @@
}
public boolean getHasWhitelist() {
-@@ -846,26 +1317,39 @@
+@@ -827,26 +1283,39 @@
}
public void u() {
@@ -970,17 +950,17 @@
+ // CraftBukkit end
if (serverstatisticmanager == null) {
- File file = new File(this.server.getWorldServer(0).getDataManager().getDirectory(), "stats");
-@@ -881,7 +1365,7 @@
+ File file = new File(this.server.a(DimensionManager.OVERWORLD).getDataManager().getDirectory(), "stats");
+@@ -861,7 +1330,7 @@
+ }
serverstatisticmanager = new ServerStatisticManager(this.server, file1);
- serverstatisticmanager.a();
- this.o.put(uuid, serverstatisticmanager);
+ // this.o.put(uuid, serverstatisticmanager); // CraftBukkit
}
return serverstatisticmanager;
-@@ -889,14 +1373,14 @@
+@@ -869,14 +1338,14 @@
public AdvancementDataPlayer h(EntityPlayer entityplayer) {
UUID uuid = entityplayer.getUniqueID();
@@ -988,7 +968,7 @@
+ AdvancementDataPlayer advancementdataplayer = (AdvancementDataPlayer) entityplayer.getAdvancementData(); // CraftBukkit
if (advancementdataplayer == null) {
- File file = new File(this.server.getWorldServer(0).getDataManager().getDirectory(), "advancements");
+ File file = new File(this.server.a(DimensionManager.OVERWORLD).getDataManager().getDirectory(), "advancements");
File file1 = new File(file, uuid + ".json");
advancementdataplayer = new AdvancementDataPlayer(this.server, file1, entityplayer);
@@ -997,7 +977,7 @@
}
advancementdataplayer.a(entityplayer);
-@@ -909,8 +1393,10 @@
+@@ -889,8 +1358,10 @@
WorldServer[] aworldserver = this.server.worldServer;
int j = aworldserver.length;
@@ -1010,7 +990,7 @@
if (worldserver != null) {
worldserver.getPlayerChunkMap().a(i);
-@@ -934,13 +1420,20 @@
+@@ -915,13 +1386,20 @@
}
public void reload() {
@@ -1030,5 +1010,5 @@
}
+ // CraftBukkit end
- }
- }
+ this.sendAll(new PacketPlayOutTags(this.server.getTagRegistry()));
+ PacketPlayOutRecipeUpdate packetplayoutrecipeupdate = new PacketPlayOutRecipeUpdate(this.server.getCraftingManager().b());