@@ -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 @@
|
||||
@@ -677,6 +1121,7 @@
|
||||
entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0));
|
||||
}
|
||||
|
||||
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
|
||||
+ entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit
|
||||
this.server.getCommandDispatcher().a(entityplayer);
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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());
|
||||
|
||||
Reference in New Issue
Block a user