Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package org.bukkit.event.player;
2
3import net.minecraft.server.EntityPlayer;
4import org.bukkit.Location;
5import org.bukkit.craftbukkit.entity.CraftPlayer;
6import org.bukkit.entity.Player;
7import org.bukkit.event.Event;
8
9/**
10 * Holds information for player teleport events
11 */
12public class PlayerTeleportEvent extends PlayerMoveEvent {
13 public PlayerTeleportEvent(Player player, Location from, Location to) {
14 super(Type.PLAYER_TELEPORT, player, from, to);
15 blockCrossDimensionDupe(); //Poseidon
16 }
17
18 public PlayerTeleportEvent(final Event.Type type, Player player, Location from, Location to) {
19 super(type, player, from, to);
20 blockCrossDimensionDupe(); //Poseidon
21 }
22
23 //Poseidon - Start
24 private void blockCrossDimensionDupe() {
25 if (this instanceof PlayerPortalEvent || this.getFrom().getWorld() != this.getTo().getWorld()) {
26 EntityPlayer entity = ((CraftPlayer) this.getPlayer()).getHandle();
27 if (entity.activeContainer == entity.defaultContainer) return;
28 System.out.println("[Poseidon] Force closing " + player.getName() + "'s inventory as they have teleported to a different world. This is to prevent a dupe bug.");
29 entity.y();
30 }
31 }
32 //Poseidon - End
33}