Fix Inventory#getViewers on the player inventory not returning the player first time their inventory is opened

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2021-06-20 09:27:32 +10:00
parent 41524cf726
commit 66df1397b3
4 changed files with 64 additions and 62 deletions

View File

@@ -157,7 +157,7 @@
+ }
+ 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()) {
+ this.cserver.getPluginManager().callEvent(event);
@@ -1611,7 +1611,7 @@
}
+ // CraftBukkit start
+ Player player = this.cserver.getPlayer(this.player);
+ Player player = this.player.getBukkitEntity();
+ int x = packetplayinupdatesign.b().getX();
+ int y = packetplayinupdatesign.b().getY();
+ int z = packetplayinupdatesign.b().getZ();
@@ -1628,7 +1628,7 @@
+ 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);
+
+ if (!event.isCancelled()) {
@@ -1657,7 +1657,7 @@
- this.player.getAbilities().flying = packetplayinabilities.isFlying() && this.player.getAbilities().mayfly;
+ // CraftBukkit start
+ 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);
+ if (!event.isCancelled()) {
+ this.player.getAbilities().flying = packetplayinabilities.isFlying(); // Actually set the player's flying status