diff options
author | md_5 <git@md-5.net> | 2018-07-15 10:00:00 +1000 |
---|---|---|
committer | md_5 <git@md-5.net> | 2018-07-15 10:00:00 +1000 |
commit | 421c1728c81e2f729dff88da2ac96535d2b8e5e8 (patch) | |
tree | 6c51d93e811d1eb86b68461a42fc5cf03b168b0c /nms-patches/PlayerList.patch | |
parent | 57ab4cfc6f4ff526d44319d9b8c79f6848db2de7 (diff) | |
download | craftbukkit-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.patch | 258 |
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()); |