Update CraftBukkit to Minecraft 1.7.8
By: Travis Watkins <amaranth@ubuntu.com>
This commit is contained in:
@@ -9,6 +9,8 @@ import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Horse;
|
||||
import org.bukkit.inventory.HorseInventory;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class CraftHorse extends CraftAnimals implements Horse {
|
||||
|
||||
public CraftHorse(CraftServer server, EntityHorse entity) {
|
||||
@@ -97,28 +99,36 @@ public class CraftHorse extends CraftAnimals implements Horse {
|
||||
|
||||
@Override
|
||||
public AnimalTamer getOwner() {
|
||||
if (getOwnerName() == null || "".equals(getOwnerName())) return null;
|
||||
return getServer().getOfflinePlayer(getOwnerName());
|
||||
if (getOwnerUUID() == null) return null;
|
||||
return getServer().getOfflinePlayer(getOwnerUUID());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOwner(AnimalTamer owner) {
|
||||
if (owner != null && !"".equals(owner.getName())) {
|
||||
if (owner != null) {
|
||||
setTamed(true);
|
||||
getHandle().setPathEntity(null);
|
||||
setOwnerName(owner.getName());
|
||||
setOwnerUUID(owner.getUniqueId());
|
||||
} else {
|
||||
setTamed(false);
|
||||
setOwnerName("");
|
||||
setOwnerUUID(null);
|
||||
}
|
||||
}
|
||||
|
||||
public String getOwnerName() {
|
||||
return getHandle().getOwnerName();
|
||||
public UUID getOwnerUUID() {
|
||||
try {
|
||||
return UUID.fromString(getHandle().getOwnerUUID());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void setOwnerName(String name) {
|
||||
getHandle().setOwnerName(name);
|
||||
public void setOwnerUUID(UUID uuid) {
|
||||
if (uuid == null) {
|
||||
getHandle().setOwnerUUID("");
|
||||
} else {
|
||||
getHandle().setOwnerUUID(uuid.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public HorseInventory getInventory() {
|
||||
|
||||
@@ -13,11 +13,13 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.minecraft.server.*;
|
||||
|
||||
import net.minecraft.util.com.mojang.authlib.GameProfile;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.apache.commons.lang.NotImplementedException;
|
||||
import org.bukkit.*;
|
||||
@@ -64,7 +66,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
private boolean hasPlayedBefore = false;
|
||||
private final ConversationTracker conversationTracker = new ConversationTracker();
|
||||
private final Set<String> channels = new HashSet<String>();
|
||||
private final Map<String, Player> hiddenPlayers = new MapMaker().softValues().makeMap();
|
||||
private final Set<UUID> hiddenPlayers = new HashSet<UUID>();
|
||||
private int hash = 0;
|
||||
private double health = 20;
|
||||
private boolean scaledHealth = false;
|
||||
@@ -76,9 +78,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
firstPlayed = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public GameProfile getProfile() {
|
||||
return getHandle().getProfile();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOp() {
|
||||
return server.getHandle().isOp(getName());
|
||||
return server.getHandle().isOp(getProfile());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,9 +92,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
if (value == isOp()) return;
|
||||
|
||||
if (value) {
|
||||
server.getHandle().addOp(getName());
|
||||
server.getHandle().addOp(getProfile());
|
||||
} else {
|
||||
server.getHandle().removeOp(getName());
|
||||
server.getHandle().removeOp(getProfile());
|
||||
}
|
||||
|
||||
perm.recalculatePermissions();
|
||||
@@ -732,29 +738,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public boolean isBanned() {
|
||||
return server.getBanList(BanList.Type.NAME).isBanned(getName());
|
||||
return server.getBanList(BanList.Type.UUID).isBanned(getUniqueId().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBanned(boolean value) {
|
||||
if (value) {
|
||||
server.getBanList(BanList.Type.NAME).addBan(getName(), null, null, null);
|
||||
server.getBanList(BanList.Type.UUID).addBan(getUniqueId().toString(), null, null, null);
|
||||
} else {
|
||||
server.getBanList(BanList.Type.NAME).pardon(getName());
|
||||
server.getBanList(BanList.Type.UUID).pardon(getUniqueId().toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWhitelisted() {
|
||||
return server.getHandle().getWhitelisted().contains(getName().toLowerCase());
|
||||
return server.getHandle().isWhitelisted(getProfile());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWhitelisted(boolean value) {
|
||||
if (value) {
|
||||
server.getHandle().addWhitelist(getName().toLowerCase());
|
||||
server.getHandle().addWhitelist(getProfile());
|
||||
} else {
|
||||
server.getHandle().removeWhitelist(getName().toLowerCase());
|
||||
server.getHandle().removeWhitelist(getProfile());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -872,8 +878,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
Validate.notNull(player, "hidden player cannot be null");
|
||||
if (getHandle().playerConnection == null) return;
|
||||
if (equals(player)) return;
|
||||
if (hiddenPlayers.containsKey(player.getName())) return;
|
||||
hiddenPlayers.put(player.getName(), player);
|
||||
if (hiddenPlayers.contains(player.getUniqueId())) return;
|
||||
hiddenPlayers.add(player.getUniqueId());
|
||||
|
||||
//remove this player from the hidden player's EntityTrackerEntry
|
||||
EntityTracker tracker = ((WorldServer) entity.world).tracker;
|
||||
@@ -891,8 +897,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
Validate.notNull(player, "shown player cannot be null");
|
||||
if (getHandle().playerConnection == null) return;
|
||||
if (equals(player)) return;
|
||||
if (!hiddenPlayers.containsKey(player.getName())) return;
|
||||
hiddenPlayers.remove(player.getName());
|
||||
if (!hiddenPlayers.contains(player.getUniqueId())) return;
|
||||
hiddenPlayers.remove(player.getUniqueId());
|
||||
|
||||
EntityTracker tracker = ((WorldServer) entity.world).tracker;
|
||||
EntityPlayer other = ((CraftPlayer) player).getHandle();
|
||||
@@ -904,8 +910,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(player.getPlayerListName(), true, getHandle().ping));
|
||||
}
|
||||
|
||||
public void removeDisconnectingPlayer(Player player) {
|
||||
hiddenPlayers.remove(player.getUniqueId());
|
||||
}
|
||||
|
||||
public boolean canSee(Player player) {
|
||||
return !hiddenPlayers.containsKey(player.getName());
|
||||
return !hiddenPlayers.contains(player.getUniqueId());
|
||||
}
|
||||
|
||||
public Map<String, Object> serialize() {
|
||||
|
||||
@@ -6,6 +6,8 @@ import org.bukkit.entity.AnimalTamer;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.Tameable;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creature {
|
||||
public CraftTameableAnimal(CraftServer server, EntityTameableAnimal entity) {
|
||||
super(server, entity);
|
||||
@@ -16,21 +18,35 @@ public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creat
|
||||
return (EntityTameableAnimal)super.getHandle();
|
||||
}
|
||||
|
||||
public AnimalTamer getOwner() {
|
||||
if (("").equals(getOwnerName())) return null;
|
||||
public UUID getOwnerUUID() {
|
||||
try {
|
||||
return UUID.fromString(getHandle().getOwnerUUID());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
AnimalTamer owner = getServer().getPlayerExact(getOwnerName());
|
||||
public void setOwnerUUID(UUID uuid) {
|
||||
if (uuid == null) {
|
||||
getHandle().setOwnerUUID("");
|
||||
} else {
|
||||
getHandle().setOwnerUUID(uuid.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public AnimalTamer getOwner() {
|
||||
if (getOwnerUUID() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
AnimalTamer owner = getServer().getPlayer(getOwnerUUID());
|
||||
if (owner == null) {
|
||||
owner = getServer().getOfflinePlayer(getOwnerName());
|
||||
owner = getServer().getOfflinePlayer(getOwnerUUID());
|
||||
}
|
||||
|
||||
return owner;
|
||||
}
|
||||
|
||||
public String getOwnerName() {
|
||||
return getHandle().getOwnerName();
|
||||
}
|
||||
|
||||
public boolean isTamed() {
|
||||
return getHandle().isTamed();
|
||||
}
|
||||
@@ -39,21 +55,17 @@ public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creat
|
||||
if (tamer != null) {
|
||||
setTamed(true);
|
||||
getHandle().setPathEntity(null);
|
||||
setOwnerName(tamer.getName());
|
||||
setOwnerUUID(tamer.getUniqueId());
|
||||
} else {
|
||||
setTamed(false);
|
||||
setOwnerName("");
|
||||
setOwnerUUID(null);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOwnerName(String ownerName) {
|
||||
getHandle().setOwnerName(ownerName == null ? "" : ownerName);
|
||||
}
|
||||
|
||||
public void setTamed(boolean tame) {
|
||||
getHandle().setTamed(tame);
|
||||
if (!tame) {
|
||||
setOwnerName("");
|
||||
setOwnerUUID(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user