+DGroup#sendMessage(); Fixed NPE on quit

This commit is contained in:
Daniel Saukel 2015-12-28 14:54:06 +01:00
parent 47e21e92f5
commit 8a63006167
3 changed files with 38 additions and 10 deletions

View File

@ -378,7 +378,7 @@ public class PlayerListener implements Listener {
}
if (dPlayer.isInDungeonChat()) {
dPlayer.msg(player.getDisplayName() + ": " + event.getMessage());
dPlayer.sendMessage(player.getDisplayName() + ": " + event.getMessage());
event.setCancelled(true);
}
}
@ -392,6 +392,8 @@ public class PlayerListener implements Listener {
return;
}
DGroup dGroup = DGroup.get(player);
// Check GameWorld
GameWorld gameWorld = GameWorld.get(player.getWorld());
if (gameWorld != null) {
@ -401,11 +403,11 @@ public class PlayerListener implements Listener {
dPlayer.leave();
} else if (timeUntilKickOfflinePlayer > 0) {
dPlayer.msg(plugin.getDMessages().get("Player_Offline", dPlayer.getPlayer().getName(), "" + timeUntilKickOfflinePlayer));
dGroup.sendMessage(plugin.getDMessages().get("Player_Offline", dPlayer.getPlayer().getName(), "" + timeUntilKickOfflinePlayer), player);
dPlayer.setOfflineTime(System.currentTimeMillis() + timeUntilKickOfflinePlayer * 1000);
} else {
dPlayer.msg(plugin.getDMessages().get("Player_OfflineNeverKick", dPlayer.getPlayer().getName()));
dGroup.sendMessage(plugin.getDMessages().get("Player_OfflineNever", dPlayer.getPlayer().getName()), player);
}
} else if (dPlayer.isEditing()) {

View File

@ -244,6 +244,31 @@ public class DGroup {
GroupSign.updatePerGroup(this);
}
/**
* Send a message to all players in the group
*/
public void sendMessage(String message) {
for (Player player : players) {
if (player.isOnline()) {
MessageUtil.sendCenteredMessage(player, message);
}
}
}
/**
* Send a message to all players in the group
*
* @param except
* Players who do not receive the message
*/
public void sendMessage(String message, Player... except) {
for (Player player : players) {
if (player.isOnline() && !player.equals(except)) {
MessageUtil.sendCenteredMessage(player, message);
}
}
}
// Statics
public static DGroup get(Player player) {

View File

@ -345,21 +345,22 @@ public class DPlayer {
}
}
public void msg(String msg) {
public void sendMessage(String message) {
if (isEditing) {
EditWorld eworld = EditWorld.get(world);
eworld.msg(msg);
EditWorld editWorld = EditWorld.get(world);
editWorld.msg(message);
for (Player player : plugin.getChatSpyers()) {
if ( !eworld.getWorld().getPlayers().contains(player)) {
MessageUtil.sendMessage(player, ChatColor.GREEN + "[Chatspy] " + ChatColor.WHITE + msg);
if ( !editWorld.getWorld().getPlayers().contains(player)) {
MessageUtil.sendMessage(player, ChatColor.GREEN + "[Chatspy] " + ChatColor.WHITE + message);
}
}
} else {
GameWorld gameWorld = GameWorld.get(world);
gameWorld.msg(msg);
gameWorld.msg(message);
for (Player player : plugin.getChatSpyers()) {
if ( !gameWorld.getWorld().getPlayers().contains(player)) {
MessageUtil.sendMessage(player, ChatColor.GREEN + "[Chatspy] " + ChatColor.WHITE + msg);
MessageUtil.sendMessage(player, ChatColor.GREEN + "[Chatspy] " + ChatColor.WHITE + message);
}
}
}