Implement better PM social spy. Resolves #27

This commit is contained in:
Ali Moghnieh 2016-07-22 15:52:53 +01:00
parent 83b944eb4b
commit 75d1254dda
No known key found for this signature in database
GPG key ID: F09D3A1BAF2E6D70

View file

@ -76,6 +76,20 @@ public class SimpleMessageRecipient implements IMessageRecipient {
}
default:
sendMessage(tl("msgFormat", tl("me"), recipient.getDisplayName(), message));
// Better Social Spy
User senderUser = getUser();
if (senderUser != null // not null if player.
&& !senderUser.isAuthorized("essentials.chat.spy.exempt")) {
for (User onlineUser : ess.getOnlineUsers()) {
if (onlineUser.isSocialSpyEnabled()
// Don't send socialspy messages to message sender/receiver to prevent spam
&& !onlineUser.equals(senderUser)
&& !onlineUser.equals(recipient)) {
onlineUser.sendMessage(tl("msgFormat", getDisplayName(), recipient.getDisplayName(), message));
}
}
}
}
// If the message was a success, set this sender's reply-recipient to the current recipient.
if (messageResponse.isSuccess()) {
@ -90,7 +104,7 @@ public class SimpleMessageRecipient implements IMessageRecipient {
return MessageResponse.UNREACHABLE;
}
User user = this.parent instanceof User ? (User) this.parent : null;
User user = getUser();
boolean afk = false;
if (user != null) {
if (user.isIgnoreMsg()
@ -120,6 +134,10 @@ public class SimpleMessageRecipient implements IMessageRecipient {
this.lastMessageMs = System.currentTimeMillis();
return afk ? MessageResponse.SUCCESS_BUT_AFK : MessageResponse.SUCCESS;
}
protected User getUser() {
return this.parent instanceof User ? (User) this.parent : null;
}
@Override public boolean isReachable() {
return this.parent.isReachable();