Fix Inventory#getViewers on the player inventory not returning the player first time their inventory is opened
This commit is contained in:
parent
d161627d4f
commit
1c39efa340
@ -246,7 +246,7 @@
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (this.oldLevel != this.experienceLevel) {
|
+ if (this.oldLevel != this.experienceLevel) {
|
||||||
+ CraftEventFactory.callPlayerLevelChangeEvent(this.level.getCraftServer().getPlayer((EntityPlayer) this), this.oldLevel, this.experienceLevel);
|
+ CraftEventFactory.callPlayerLevelChangeEvent(this.getBukkitEntity(), this.oldLevel, this.experienceLevel);
|
||||||
+ this.oldLevel = this.experienceLevel;
|
+ this.oldLevel = this.experienceLevel;
|
||||||
+ }
|
+ }
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
|
@ -157,7 +157,7 @@
|
|||||||
+ }
|
+ }
|
||||||
+ String leaveMessage = EnumChatFormat.YELLOW + this.player.getName() + " left the game.";
|
+ String leaveMessage = EnumChatFormat.YELLOW + this.player.getName() + " left the game.";
|
||||||
+
|
+
|
||||||
+ PlayerKickEvent event = new PlayerKickEvent(this.cserver.getPlayer(this.player), s, leaveMessage);
|
+ PlayerKickEvent event = new PlayerKickEvent(this.player.getBukkitEntity(), s, leaveMessage);
|
||||||
+
|
+
|
||||||
+ if (this.cserver.getServer().isRunning()) {
|
+ if (this.cserver.getServer().isRunning()) {
|
||||||
+ this.cserver.getPluginManager().callEvent(event);
|
+ this.cserver.getPluginManager().callEvent(event);
|
||||||
@ -1611,7 +1611,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ Player player = this.cserver.getPlayer(this.player);
|
+ Player player = this.player.getBukkitEntity();
|
||||||
+ int x = packetplayinupdatesign.b().getX();
|
+ int x = packetplayinupdatesign.b().getX();
|
||||||
+ int y = packetplayinupdatesign.b().getY();
|
+ int y = packetplayinupdatesign.b().getY();
|
||||||
+ int z = packetplayinupdatesign.b().getZ();
|
+ int z = packetplayinupdatesign.b().getZ();
|
||||||
@ -1628,7 +1628,7 @@
|
|||||||
+ lines[i] = EnumChatFormat.a(new ChatComponentText(EnumChatFormat.a(itextfilter_a.a())).getString());
|
+ lines[i] = EnumChatFormat.a(new ChatComponentText(EnumChatFormat.a(itextfilter_a.a())).getString());
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.cserver.getPlayer(this.player), lines);
|
+ SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.player.getBukkitEntity(), lines);
|
||||||
+ this.cserver.getPluginManager().callEvent(event);
|
+ this.cserver.getPluginManager().callEvent(event);
|
||||||
+
|
+
|
||||||
+ if (!event.isCancelled()) {
|
+ if (!event.isCancelled()) {
|
||||||
@ -1657,7 +1657,7 @@
|
|||||||
- this.player.getAbilities().flying = packetplayinabilities.isFlying() && this.player.getAbilities().mayfly;
|
- this.player.getAbilities().flying = packetplayinabilities.isFlying() && this.player.getAbilities().mayfly;
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ if (this.player.getAbilities().mayfly && this.player.getAbilities().flying != packetplayinabilities.isFlying()) {
|
+ if (this.player.getAbilities().mayfly && this.player.getAbilities().flying != packetplayinabilities.isFlying()) {
|
||||||
+ PlayerToggleFlightEvent event = new PlayerToggleFlightEvent(this.cserver.getPlayer(this.player), packetplayinabilities.isFlying());
|
+ PlayerToggleFlightEvent event = new PlayerToggleFlightEvent(this.player.getBukkitEntity(), packetplayinabilities.isFlying());
|
||||||
+ this.cserver.getPluginManager().callEvent(event);
|
+ this.cserver.getPluginManager().callEvent(event);
|
||||||
+ if (!event.isCancelled()) {
|
+ if (!event.isCancelled()) {
|
||||||
+ this.player.getAbilities().flying = packetplayinabilities.isFlying(); // Actually set the player's flying status
|
+ this.player.getAbilities().flying = packetplayinabilities.isFlying(); // Actually set the player's flying status
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -93,6 +93,25 @@
|
@@ -93,6 +93,26 @@
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
@ -14,6 +14,7 @@
|
|||||||
+import org.bukkit.Location;
|
+import org.bukkit.Location;
|
||||||
+import org.bukkit.craftbukkit.CraftServer;
|
+import org.bukkit.craftbukkit.CraftServer;
|
||||||
+import org.bukkit.craftbukkit.CraftWorld;
|
+import org.bukkit.craftbukkit.CraftWorld;
|
||||||
|
+import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||||
+import org.bukkit.craftbukkit.util.CraftChatMessage;
|
+import org.bukkit.craftbukkit.util.CraftChatMessage;
|
||||||
+import org.bukkit.entity.Player;
|
+import org.bukkit.entity.Player;
|
||||||
+import org.bukkit.event.player.PlayerChangedWorldEvent;
|
+import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
@ -26,7 +27,7 @@
|
|||||||
public abstract class PlayerList {
|
public abstract class PlayerList {
|
||||||
|
|
||||||
public static final File USERBANLIST_FILE = new File("banned-players.json");
|
public static final File USERBANLIST_FILE = new File("banned-players.json");
|
||||||
@@ -103,14 +122,16 @@
|
@@ -103,14 +123,16 @@
|
||||||
private static final int SEND_PLAYER_INFO_INTERVAL = 600;
|
private static final int SEND_PLAYER_INFO_INTERVAL = 600;
|
||||||
private static final SimpleDateFormat BAN_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
private static final SimpleDateFormat BAN_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
||||||
private final MinecraftServer server;
|
private final MinecraftServer server;
|
||||||
@ -40,13 +41,13 @@
|
|||||||
- private final Map<UUID, ServerStatisticManager> stats;
|
- private final Map<UUID, ServerStatisticManager> stats;
|
||||||
- private final Map<UUID, AdvancementDataPlayer> advancements;
|
- private final Map<UUID, AdvancementDataPlayer> advancements;
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ // private final Map<UUID, ServerStatisticManager> o;
|
+ // private final Map<UUID, ServerStatisticManager> stats;
|
||||||
+ // private final Map<UUID, AdvancementDataPlayer> p;
|
+ // private final Map<UUID, AdvancementDataPlayer> advancements;
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
public final WorldNBTStorage playerIo;
|
public final WorldNBTStorage playerIo;
|
||||||
private boolean doWhiteList;
|
private boolean doWhiteList;
|
||||||
private final IRegistryCustom.Dimension registryHolder;
|
private final IRegistryCustom.Dimension registryHolder;
|
||||||
@@ -120,13 +141,23 @@
|
@@ -120,13 +142,23 @@
|
||||||
private static final boolean ALLOW_LOGOUTIVATOR = false;
|
private static final boolean ALLOW_LOGOUTIVATOR = false;
|
||||||
private int sendAllPlayerInfoIn;
|
private int sendAllPlayerInfoIn;
|
||||||
|
|
||||||
@ -66,13 +67,13 @@
|
|||||||
- this.stats = Maps.newHashMap();
|
- this.stats = Maps.newHashMap();
|
||||||
- this.advancements = Maps.newHashMap();
|
- this.advancements = Maps.newHashMap();
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ // this.o = Maps.newHashMap();
|
+ // this.stats = Maps.newHashMap();
|
||||||
+ // this.p = Maps.newHashMap();
|
+ // this.advancements = Maps.newHashMap();
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
this.server = minecraftserver;
|
this.server = minecraftserver;
|
||||||
this.registryHolder = iregistrycustom_dimension;
|
this.registryHolder = iregistrycustom_dimension;
|
||||||
this.maxPlayers = i;
|
this.maxPlayers = i;
|
||||||
@@ -142,6 +173,12 @@
|
@@ -142,6 +174,12 @@
|
||||||
usercache.a(gameprofile);
|
usercache.a(gameprofile);
|
||||||
NBTTagCompound nbttagcompound = this.a(entityplayer);
|
NBTTagCompound nbttagcompound = this.a(entityplayer);
|
||||||
ResourceKey resourcekey;
|
ResourceKey resourcekey;
|
||||||
@ -85,7 +86,7 @@
|
|||||||
|
|
||||||
if (nbttagcompound != null) {
|
if (nbttagcompound != null) {
|
||||||
DataResult dataresult = DimensionManager.a(new Dynamic(DynamicOpsNBT.INSTANCE, nbttagcompound.get("Dimension")));
|
DataResult dataresult = DimensionManager.a(new Dynamic(DynamicOpsNBT.INSTANCE, nbttagcompound.get("Dimension")));
|
||||||
@@ -171,7 +208,8 @@
|
@@ -171,7 +209,8 @@
|
||||||
s1 = networkmanager.getSocketAddress().toString();
|
s1 = networkmanager.getSocketAddress().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +96,7 @@
|
|||||||
WorldData worlddata = worldserver1.getWorldData();
|
WorldData worlddata = worldserver1.getWorldData();
|
||||||
|
|
||||||
entityplayer.c(nbttagcompound);
|
entityplayer.c(nbttagcompound);
|
||||||
@@ -181,6 +219,7 @@
|
@@ -181,6 +220,7 @@
|
||||||
boolean flag1 = gamerules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO);
|
boolean flag1 = gamerules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO);
|
||||||
|
|
||||||
playerconnection.sendPacket(new PacketPlayOutLogin(entityplayer.getId(), entityplayer.gameMode.getGameMode(), entityplayer.gameMode.c(), BiomeManager.a(worldserver1.getSeed()), worlddata.isHardcore(), this.server.G(), this.registryHolder, worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), this.getMaxPlayers(), this.viewDistance, flag1, !flag, worldserver1.isDebugWorld(), worldserver1.isFlatWorld()));
|
playerconnection.sendPacket(new PacketPlayOutLogin(entityplayer.getId(), entityplayer.gameMode.getGameMode(), entityplayer.gameMode.c(), BiomeManager.a(worldserver1.getSeed()), worlddata.isHardcore(), this.server.G(), this.registryHolder, worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), this.getMaxPlayers(), this.viewDistance, flag1, !flag, worldserver1.isDebugWorld(), worldserver1.isFlatWorld()));
|
||||||
@ -103,7 +104,7 @@
|
|||||||
playerconnection.sendPacket(new PacketPlayOutCustomPayload(PacketPlayOutCustomPayload.BRAND, (new PacketDataSerializer(Unpooled.buffer())).a(this.getServer().getServerModName())));
|
playerconnection.sendPacket(new PacketPlayOutCustomPayload(PacketPlayOutCustomPayload.BRAND, (new PacketDataSerializer(Unpooled.buffer())).a(this.getServer().getServerModName())));
|
||||||
playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
|
playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
|
||||||
playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.getAbilities()));
|
playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.getAbilities()));
|
||||||
@@ -199,19 +238,61 @@
|
@@ -199,19 +239,66 @@
|
||||||
} else {
|
} 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});
|
||||||
}
|
}
|
||||||
@ -119,7 +120,12 @@
|
|||||||
+ // this.sendAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{entityplayer})); // CraftBukkit - replaced with loop below
|
+ // this.sendAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{entityplayer})); // CraftBukkit - replaced with loop below
|
||||||
+
|
+
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(cserver.getPlayer(entityplayer), joinMessage);
|
+ CraftPlayer bukkitPlayer = entityplayer.getBukkitEntity();
|
||||||
|
+
|
||||||
|
+ // Ensure that player inventory is populated with its viewer
|
||||||
|
+ entityplayer.containerMenu.transferTo(entityplayer.containerMenu, bukkitPlayer);
|
||||||
|
+
|
||||||
|
+ PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(bukkitPlayer, joinMessage);
|
||||||
+ cserver.getPluginManager().callEvent(playerJoinEvent);
|
+ cserver.getPluginManager().callEvent(playerJoinEvent);
|
||||||
+
|
+
|
||||||
+ if (!entityplayer.connection.connection.isConnected()) {
|
+ if (!entityplayer.connection.connection.isConnected()) {
|
||||||
@ -142,35 +148,35 @@
|
|||||||
- entityplayer.connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{(EntityPlayer) this.players.get(i)}));
|
- entityplayer.connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{(EntityPlayer) this.players.get(i)}));
|
||||||
+ EntityPlayer entityplayer1 = (EntityPlayer) this.players.get(i);
|
+ EntityPlayer entityplayer1 = (EntityPlayer) this.players.get(i);
|
||||||
+
|
+
|
||||||
+ if (entityplayer1.getBukkitEntity().canSee(entityplayer.getBukkitEntity())) {
|
+ if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer)) {
|
||||||
+ entityplayer1.connection.sendPacket(packet);
|
+ entityplayer1.connection.sendPacket(packet);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (!entityplayer.getBukkitEntity().canSee(entityplayer1.getBukkitEntity())) {
|
+ if (!bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) {
|
||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ entityplayer.connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[] { entityplayer1}));
|
+ entityplayer.connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[] { entityplayer1}));
|
||||||
+ }
|
}
|
||||||
+ entityplayer.sentListPacket = true;
|
+ entityplayer.sentListPacket = true;
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
+
|
|
||||||
|
- worldserver1.addPlayerJoin(entityplayer);
|
||||||
|
- this.server.getBossBattleCustomData().a(entityplayer);
|
||||||
+ entityplayer.connection.sendPacket(new PacketPlayOutEntityMetadata(entityplayer.getId(), entityplayer.getDataWatcher(), true)); // CraftBukkit - BungeeCord#2321, send complete data to self on spawn
|
+ entityplayer.connection.sendPacket(new PacketPlayOutEntityMetadata(entityplayer.getId(), entityplayer.getDataWatcher(), true)); // CraftBukkit - BungeeCord#2321, send complete data to self on spawn
|
||||||
+
|
+
|
||||||
+ // CraftBukkit start - Only add if the player wasn't moved in the event
|
+ // CraftBukkit start - Only add if the player wasn't moved in the event
|
||||||
+ if (entityplayer.level == worldserver1 && !worldserver1.getPlayers().contains(entityplayer)) {
|
+ if (entityplayer.level == worldserver1 && !worldserver1.getPlayers().contains(entityplayer)) {
|
||||||
+ worldserver1.addPlayerJoin(entityplayer);
|
+ worldserver1.addPlayerJoin(entityplayer);
|
||||||
+ this.server.getBossBattleCustomData().a(entityplayer);
|
+ this.server.getBossBattleCustomData().a(entityplayer);
|
||||||
}
|
+ }
|
||||||
|
+
|
||||||
- worldserver1.addPlayerJoin(entityplayer);
|
|
||||||
- this.server.getBossBattleCustomData().a(entityplayer);
|
|
||||||
+ worldserver1 = entityplayer.getWorldServer(); // CraftBukkit - Update in case join event changed it
|
+ worldserver1 = entityplayer.getWorldServer(); // CraftBukkit - Update in case join event changed it
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
this.a(entityplayer, worldserver1);
|
this.a(entityplayer, worldserver1);
|
||||||
if (!this.server.getResourcePack().isEmpty()) {
|
if (!this.server.getResourcePack().isEmpty()) {
|
||||||
entityplayer.setResourcePack(this.server.getResourcePack(), this.server.getResourcePackHash(), this.server.aY(), this.server.bb());
|
entityplayer.setResourcePack(this.server.getResourcePack(), this.server.getResourcePackHash(), this.server.aY(), this.server.bb());
|
||||||
@@ -227,8 +308,11 @@
|
@@ -227,8 +314,11 @@
|
||||||
|
|
||||||
if (nbttagcompound != null && nbttagcompound.hasKeyOfType("RootVehicle", 10)) {
|
if (nbttagcompound != null && nbttagcompound.hasKeyOfType("RootVehicle", 10)) {
|
||||||
NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("RootVehicle");
|
NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("RootVehicle");
|
||||||
@ -184,7 +190,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
@@ -271,6 +355,8 @@
|
@@ -271,6 +361,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
entityplayer.syncInventory();
|
entityplayer.syncInventory();
|
||||||
@ -193,7 +199,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void sendScoreboard(ScoreboardServer scoreboardserver, EntityPlayer entityplayer) {
|
public void sendScoreboard(ScoreboardServer scoreboardserver, EntityPlayer entityplayer) {
|
||||||
@@ -303,30 +389,31 @@
|
@@ -303,30 +395,31 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlayerFileData(WorldServer worldserver) {
|
public void setPlayerFileData(WorldServer worldserver) {
|
||||||
@ -230,7 +236,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -354,14 +441,15 @@
|
@@ -354,14 +447,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void savePlayerFile(EntityPlayer entityplayer) {
|
protected void savePlayerFile(EntityPlayer entityplayer) {
|
||||||
@ -248,7 +254,7 @@
|
|||||||
|
|
||||||
if (advancementdataplayer != null) {
|
if (advancementdataplayer != null) {
|
||||||
advancementdataplayer.b();
|
advancementdataplayer.b();
|
||||||
@@ -369,10 +457,24 @@
|
@@ -369,10 +463,24 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,7 +270,7 @@
|
|||||||
+ entityplayer.closeInventory();
|
+ entityplayer.closeInventory();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game");
|
+ PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), "\u00A7e" + entityplayer.getName() + " left the game");
|
||||||
+ cserver.getPluginManager().callEvent(playerQuitEvent);
|
+ cserver.getPluginManager().callEvent(playerQuitEvent);
|
||||||
+ entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
|
+ entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
|
||||||
+
|
+
|
||||||
@ -274,15 +280,15 @@
|
|||||||
this.savePlayerFile(entityplayer);
|
this.savePlayerFile(entityplayer);
|
||||||
if (entityplayer.isPassenger()) {
|
if (entityplayer.isPassenger()) {
|
||||||
Entity entity = entityplayer.getRootVehicle();
|
Entity entity = entityplayer.getRootVehicle();
|
||||||
@@ -396,18 +498,66 @@
|
@@ -396,18 +504,66 @@
|
||||||
|
|
||||||
if (entityplayer1 == entityplayer) {
|
if (entityplayer1 == entityplayer) {
|
||||||
this.playersByUUID.remove(uuid);
|
this.playersByUUID.remove(uuid);
|
||||||
- this.stats.remove(uuid);
|
- this.stats.remove(uuid);
|
||||||
- this.advancements.remove(uuid);
|
- this.advancements.remove(uuid);
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ // this.o.remove(uuid);
|
+ // this.stats.remove(uuid);
|
||||||
+ // this.p.remove(uuid);
|
+ // this.advancements.remove(uuid);
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@ -347,7 +353,7 @@
|
|||||||
GameProfileBanEntry gameprofilebanentry = (GameProfileBanEntry) this.bans.get(gameprofile);
|
GameProfileBanEntry gameprofilebanentry = (GameProfileBanEntry) this.bans.get(gameprofile);
|
||||||
|
|
||||||
chatmessage = new ChatMessage("multiplayer.disconnect.banned.reason", new Object[]{gameprofilebanentry.getReason()});
|
chatmessage = new ChatMessage("multiplayer.disconnect.banned.reason", new Object[]{gameprofilebanentry.getReason()});
|
||||||
@@ -415,10 +565,12 @@
|
@@ -415,10 +571,12 @@
|
||||||
chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned.expiration", new Object[]{PlayerList.BAN_DATE_FORMAT.format(gameprofilebanentry.getExpires())}));
|
chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned.expiration", new Object[]{PlayerList.BAN_DATE_FORMAT.format(gameprofilebanentry.getExpires())}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,7 +369,7 @@
|
|||||||
IpBanEntry ipbanentry = this.ipBans.get(socketaddress);
|
IpBanEntry ipbanentry = this.ipBans.get(socketaddress);
|
||||||
|
|
||||||
chatmessage = new ChatMessage("multiplayer.disconnect.banned_ip.reason", new Object[]{ipbanentry.getReason()});
|
chatmessage = new ChatMessage("multiplayer.disconnect.banned_ip.reason", new Object[]{ipbanentry.getReason()});
|
||||||
@@ -426,13 +578,25 @@
|
@@ -426,13 +584,25 @@
|
||||||
chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned_ip.expiration", new Object[]{PlayerList.BAN_DATE_FORMAT.format(ipbanentry.getExpires())}));
|
chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned_ip.expiration", new Object[]{PlayerList.BAN_DATE_FORMAT.format(ipbanentry.getExpires())}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -392,7 +398,7 @@
|
|||||||
UUID uuid = EntityHuman.a(gameprofile);
|
UUID uuid = EntityHuman.a(gameprofile);
|
||||||
List<EntityPlayer> list = Lists.newArrayList();
|
List<EntityPlayer> list = Lists.newArrayList();
|
||||||
|
|
||||||
@@ -459,14 +623,24 @@
|
@@ -459,14 +629,24 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
return new EntityPlayer(this.server, this.server.F(), gameprofile);
|
return new EntityPlayer(this.server, this.server.F(), gameprofile);
|
||||||
@ -417,7 +423,7 @@
|
|||||||
WorldServer worldserver = this.server.getWorldServer(entityplayer.getSpawnDimension());
|
WorldServer worldserver = this.server.getWorldServer(entityplayer.getSpawnDimension());
|
||||||
Optional optional;
|
Optional optional;
|
||||||
|
|
||||||
@@ -478,6 +652,11 @@
|
@@ -478,6 +658,11 @@
|
||||||
|
|
||||||
WorldServer worldserver1 = worldserver != null && optional.isPresent() ? worldserver : this.server.F();
|
WorldServer worldserver1 = worldserver != null && optional.isPresent() ? worldserver : this.server.F();
|
||||||
EntityPlayer entityplayer1 = new EntityPlayer(this.server, worldserver1, entityplayer.getProfile());
|
EntityPlayer entityplayer1 = new EntityPlayer(this.server, worldserver1, entityplayer.getProfile());
|
||||||
@ -429,7 +435,7 @@
|
|||||||
|
|
||||||
entityplayer1.connection = entityplayer.connection;
|
entityplayer1.connection = entityplayer.connection;
|
||||||
entityplayer1.copyFrom(entityplayer, flag);
|
entityplayer1.copyFrom(entityplayer, flag);
|
||||||
@@ -493,49 +672,110 @@
|
@@ -493,49 +678,110 @@
|
||||||
|
|
||||||
boolean flag2 = false;
|
boolean flag2 = false;
|
||||||
|
|
||||||
@ -465,7 +471,8 @@
|
|||||||
+ f1 = f;
|
+ f1 = f;
|
||||||
+ } else {
|
+ } else {
|
||||||
+ Vec3D vec3d1 = Vec3D.c((BaseBlockPosition) blockposition).d(vec3d).d();
|
+ Vec3D vec3d1 = Vec3D.c((BaseBlockPosition) blockposition).d(vec3d).d();
|
||||||
+
|
|
||||||
|
- f1 = (float) MathHelper.f(MathHelper.d(vec3d1.z, vec3d1.x) * 57.2957763671875D - 90.0D);
|
||||||
+ f1 = (float) MathHelper.f(MathHelper.d(vec3d1.z, vec3d1.x) * 57.2957763671875D - 90.0D);
|
+ f1 = (float) MathHelper.f(MathHelper.d(vec3d1.z, vec3d1.x) * 57.2957763671875D - 90.0D);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@ -477,8 +484,7 @@
|
|||||||
+ entityplayer1.connection.sendPacket(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
|
+ entityplayer1.connection.sendPacket(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
- f1 = (float) MathHelper.f(MathHelper.d(vec3d1.z, vec3d1.x) * 57.2957763671875D - 90.0D);
|
|
||||||
+ if (location == null) {
|
+ if (location == null) {
|
||||||
+ worldserver1 = this.server.getWorldServer(World.OVERWORLD);
|
+ worldserver1 = this.server.getWorldServer(World.OVERWORLD);
|
||||||
+ blockposition = entityplayer1.getSpawnPoint(worldserver1);
|
+ blockposition = entityplayer1.getSpawnPoint(worldserver1);
|
||||||
@ -490,7 +496,7 @@
|
|||||||
- flag2 = !flag && flag3;
|
- flag2 = !flag && flag3;
|
||||||
- } else if (blockposition != null) {
|
- } else if (blockposition != null) {
|
||||||
- entityplayer1.connection.sendPacket(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
|
- entityplayer1.connection.sendPacket(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
|
||||||
+ Player respawnPlayer = cserver.getPlayer(entityplayer1);
|
+ Player respawnPlayer = entityplayer1.getBukkitEntity();
|
||||||
+ PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !flag2, flag2);
|
+ PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !flag2, flag2);
|
||||||
+ cserver.getPluginManager().callEvent(respawnEvent);
|
+ cserver.getPluginManager().callEvent(respawnEvent);
|
||||||
+
|
+
|
||||||
@ -549,13 +555,13 @@
|
|||||||
+
|
+
|
||||||
+ // Fire advancement trigger
|
+ // Fire advancement trigger
|
||||||
+ entityplayer.triggerDimensionAdvancements(((CraftWorld) fromWorld).getHandle());
|
+ entityplayer.triggerDimensionAdvancements(((CraftWorld) fromWorld).getHandle());
|
||||||
+
|
|
||||||
+ // Don't fire on respawn
|
+ // Don't fire on respawn
|
||||||
+ if (fromWorld != location.getWorld()) {
|
+ if (fromWorld != location.getWorld()) {
|
||||||
+ PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld);
|
+ PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld);
|
||||||
+ server.server.getPluginManager().callEvent(event);
|
+ server.server.getPluginManager().callEvent(event);
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
+ // Save player file again if they were disconnected
|
+ // Save player file again if they were disconnected
|
||||||
+ if (entityplayer.connection.isDisconnected()) {
|
+ if (entityplayer.connection.isDisconnected()) {
|
||||||
+ this.savePlayerFile(entityplayer);
|
+ this.savePlayerFile(entityplayer);
|
||||||
@ -564,7 +570,7 @@
|
|||||||
return entityplayer1;
|
return entityplayer1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -548,7 +788,18 @@
|
@@ -548,7 +794,18 @@
|
||||||
|
|
||||||
public void tick() {
|
public void tick() {
|
||||||
if (++this.sendAllPlayerInfoIn > 600) {
|
if (++this.sendAllPlayerInfoIn > 600) {
|
||||||
@ -584,7 +590,7 @@
|
|||||||
this.sendAllPlayerInfoIn = 0;
|
this.sendAllPlayerInfoIn = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -565,6 +816,25 @@
|
@@ -565,6 +822,25 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -610,7 +616,7 @@
|
|||||||
public void a(Packet<?> packet, ResourceKey<World> resourcekey) {
|
public void a(Packet<?> packet, ResourceKey<World> resourcekey) {
|
||||||
Iterator iterator = this.players.iterator();
|
Iterator iterator = this.players.iterator();
|
||||||
|
|
||||||
@@ -667,6 +937,7 @@
|
@@ -667,6 +943,7 @@
|
||||||
entityplayer.connection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0));
|
entityplayer.connection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -618,7 +624,7 @@
|
|||||||
this.server.getCommandDispatcher().a(entityplayer);
|
this.server.getCommandDispatcher().a(entityplayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -699,6 +970,12 @@
|
@@ -699,6 +976,12 @@
|
||||||
for (int i = 0; i < this.players.size(); ++i) {
|
for (int i = 0; i < this.players.size(); ++i) {
|
||||||
EntityPlayer entityplayer = (EntityPlayer) this.players.get(i);
|
EntityPlayer entityplayer = (EntityPlayer) this.players.get(i);
|
||||||
|
|
||||||
@ -631,7 +637,7 @@
|
|||||||
if (entityplayer != entityhuman && entityplayer.level.getDimensionKey() == resourcekey) {
|
if (entityplayer != entityhuman && entityplayer.level.getDimensionKey() == resourcekey) {
|
||||||
double d4 = d0 - entityplayer.locX();
|
double d4 = d0 - entityplayer.locX();
|
||||||
double d5 = d1 - entityplayer.locY();
|
double d5 = d1 - entityplayer.locY();
|
||||||
@@ -738,23 +1015,34 @@
|
@@ -738,23 +1021,34 @@
|
||||||
public void reloadWhitelist() {}
|
public void reloadWhitelist() {}
|
||||||
|
|
||||||
public void a(EntityPlayer entityplayer, WorldServer worldserver) {
|
public void a(EntityPlayer entityplayer, WorldServer worldserver) {
|
||||||
@ -671,7 +677,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getPlayerCount() {
|
public int getPlayerCount() {
|
||||||
@@ -805,12 +1093,22 @@
|
@@ -805,12 +1099,22 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void shutdown() {
|
public void shutdown() {
|
||||||
@ -696,7 +702,7 @@
|
|||||||
public void sendMessage(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype, UUID uuid) {
|
public void sendMessage(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype, UUID uuid) {
|
||||||
this.server.sendMessage(ichatbasecomponent, uuid);
|
this.server.sendMessage(ichatbasecomponent, uuid);
|
||||||
Iterator iterator = this.players.iterator();
|
Iterator iterator = this.players.iterator();
|
||||||
@@ -838,16 +1136,23 @@
|
@@ -838,16 +1142,23 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -724,16 +730,16 @@
|
|||||||
|
|
||||||
if (file2.exists() && file2.isFile()) {
|
if (file2.exists() && file2.isFile()) {
|
||||||
file2.renameTo(file1);
|
file2.renameTo(file1);
|
||||||
@@ -855,7 +1160,7 @@
|
@@ -855,7 +1166,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
serverstatisticmanager = new ServerStatisticManager(this.server, file1);
|
serverstatisticmanager = new ServerStatisticManager(this.server, file1);
|
||||||
- this.stats.put(uuid, serverstatisticmanager);
|
- this.stats.put(uuid, serverstatisticmanager);
|
||||||
+ // this.o.put(uuid, serverstatisticmanager); // CraftBukkit
|
+ // this.stats.put(uuid, serverstatisticmanager); // CraftBukkit
|
||||||
}
|
}
|
||||||
|
|
||||||
return serverstatisticmanager;
|
return serverstatisticmanager;
|
||||||
@@ -863,14 +1168,14 @@
|
@@ -863,14 +1174,14 @@
|
||||||
|
|
||||||
public AdvancementDataPlayer f(EntityPlayer entityplayer) {
|
public AdvancementDataPlayer f(EntityPlayer entityplayer) {
|
||||||
UUID uuid = entityplayer.getUniqueID();
|
UUID uuid = entityplayer.getUniqueID();
|
||||||
@ -746,17 +752,17 @@
|
|||||||
|
|
||||||
advancementdataplayer = new AdvancementDataPlayer(this.server.getDataFixer(), this, this.server.getAdvancementData(), file1, entityplayer);
|
advancementdataplayer = new AdvancementDataPlayer(this.server.getDataFixer(), this, this.server.getAdvancementData(), file1, entityplayer);
|
||||||
- this.advancements.put(uuid, advancementdataplayer);
|
- this.advancements.put(uuid, advancementdataplayer);
|
||||||
+ // this.p.put(uuid, advancementdataplayer); // CraftBukkit
|
+ // this.advancements.put(uuid, advancementdataplayer); // CraftBukkit
|
||||||
}
|
}
|
||||||
|
|
||||||
advancementdataplayer.a(entityplayer);
|
advancementdataplayer.a(entityplayer);
|
||||||
@@ -906,13 +1211,20 @@
|
@@ -906,13 +1217,20 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reload() {
|
public void reload() {
|
||||||
- Iterator iterator = this.advancements.values().iterator();
|
- Iterator iterator = this.advancements.values().iterator();
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ /*Iterator iterator = this.p.values().iterator();
|
+ /*Iterator iterator = this.advancements.values().iterator();
|
||||||
|
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
AdvancementDataPlayer advancementdataplayer = (AdvancementDataPlayer) iterator.next();
|
AdvancementDataPlayer advancementdataplayer = (AdvancementDataPlayer) iterator.next();
|
||||||
|
@ -555,10 +555,6 @@ public final class CraftServer implements Server {
|
|||||||
return broadcast(message, BROADCAST_CHANNEL_USERS);
|
return broadcast(message, BROADCAST_CHANNEL_USERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer(final EntityPlayer entity) {
|
|
||||||
return entity.getBukkitEntity();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public List<Player> matchPlayer(String partialName) {
|
public List<Player> matchPlayer(String partialName) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user