mirror of
https://github.com/webbukkit/dynmap.git
synced 2025-02-21 14:21:24 +01:00
Add offline player methods
This commit is contained in:
parent
d0e477b3e7
commit
7ce55a3fd3
@ -245,40 +245,63 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public DynmapPlayer getOfflinePlayer(String name) {
|
||||||
|
OfflinePlayer op = getServer().getOfflinePlayer(name);
|
||||||
|
if(op != null) {
|
||||||
|
return new BukkitPlayer(op);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Player access abstraction class
|
* Player access abstraction class
|
||||||
*/
|
*/
|
||||||
public class BukkitPlayer extends BukkitCommandSender implements DynmapPlayer {
|
public class BukkitPlayer extends BukkitCommandSender implements DynmapPlayer {
|
||||||
private Player player;
|
private Player player;
|
||||||
|
private OfflinePlayer offplayer;
|
||||||
|
|
||||||
public BukkitPlayer(Player p) {
|
public BukkitPlayer(Player p) {
|
||||||
super(p);
|
super(p);
|
||||||
player = p;
|
player = p;
|
||||||
|
offplayer = p.getPlayer();
|
||||||
|
}
|
||||||
|
public BukkitPlayer(OfflinePlayer p) {
|
||||||
|
super(null);
|
||||||
|
offplayer = p;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean isConnected() {
|
public boolean isConnected() {
|
||||||
return player.isOnline();
|
return offplayer.isOnline();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return player.getName();
|
return offplayer.getName();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayName() {
|
public String getDisplayName() {
|
||||||
return player.getDisplayName();
|
if(player != null)
|
||||||
|
return player.getDisplayName();
|
||||||
|
else
|
||||||
|
return offplayer.getName();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean isOnline() {
|
public boolean isOnline() {
|
||||||
return player.isOnline();
|
return offplayer.isOnline();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public DynmapLocation getLocation() {
|
public DynmapLocation getLocation() {
|
||||||
|
if(player == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
return toLoc(loc);
|
return toLoc(loc);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public String getWorld() {
|
public String getWorld() {
|
||||||
|
if(player == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
World w = player.getWorld();
|
World w = player.getWorld();
|
||||||
if(w != null)
|
if(w != null)
|
||||||
return w.getName();
|
return w.getName();
|
||||||
@ -286,28 +309,46 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public InetSocketAddress getAddress() {
|
public InetSocketAddress getAddress() {
|
||||||
return player.getAddress();
|
if(player != null)
|
||||||
|
return player.getAddress();
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean isSneaking() {
|
public boolean isSneaking() {
|
||||||
return player.isSneaking();
|
if(player != null)
|
||||||
|
return player.isSneaking();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public int getHealth() {
|
public int getHealth() {
|
||||||
return player.getHealth();
|
if(player != null)
|
||||||
|
return player.getHealth();
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public int getArmorPoints() {
|
public int getArmorPoints() {
|
||||||
return Armor.getArmorPoints(player);
|
if(player != null)
|
||||||
|
return Armor.getArmorPoints(player);
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public DynmapLocation getBedSpawnLocation() {
|
public DynmapLocation getBedSpawnLocation() {
|
||||||
Location loc = player.getBedSpawnLocation();
|
Location loc = offplayer.getBedSpawnLocation();
|
||||||
if(loc != null) {
|
if(loc != null) {
|
||||||
return toLoc(loc);
|
return toLoc(loc);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public long getLastLoginTime() {
|
||||||
|
return offplayer.getLastPlayed();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public long getFirstLoginTime() {
|
||||||
|
return offplayer.getFirstPlayed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* Handler for generic console command sender */
|
/* Handler for generic console command sender */
|
||||||
public class BukkitCommandSender implements DynmapCommandSender {
|
public class BukkitCommandSender implements DynmapCommandSender {
|
||||||
@ -319,21 +360,29 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasPrivilege(String privid) {
|
public boolean hasPrivilege(String privid) {
|
||||||
return permissions.has(sender, privid);
|
if(sender != null)
|
||||||
|
return permissions.has(sender, privid);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendMessage(String msg) {
|
public void sendMessage(String msg) {
|
||||||
sender.sendMessage(msg);
|
if(sender != null)
|
||||||
|
sender.sendMessage(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isConnected() {
|
public boolean isConnected() {
|
||||||
return true;
|
if(sender != null)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean isOp() {
|
public boolean isOp() {
|
||||||
return sender.isOp();
|
if(sender != null)
|
||||||
|
return sender.isOp();
|
||||||
|
else
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user