Added chat mute and user (de)activation actions to the Mage server console.

This commit is contained in:
LevelX2 2016-10-05 00:59:51 +02:00
parent 7c4b40073c
commit c46f75ac28
18 changed files with 511 additions and 213 deletions

View file

@ -28,9 +28,11 @@
package mage.server;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Locale;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import mage.server.util.SystemUtil;
import mage.view.ChatMessage.MessageColor;
import mage.view.ChatMessage.MessageType;
import mage.view.ChatMessage.SoundToPlay;
@ -94,10 +96,6 @@ public class ChatManager {
}
}
public void broadcast(UUID chatId, String userName, String message, MessageColor color) {
this.broadcast(chatId, userName, message, color, true);
}
public void broadcast(UUID chatId, String userName, String message, MessageColor color, boolean withTime) {
this.broadcast(chatId, userName, message, color, withTime, MessageType.TALK);
}
@ -121,8 +119,25 @@ public class ChatManager {
}
}
if (!messageType.equals(MessageType.GAME) && message.equals(lastMessage)) {
return;
if (!messageType.equals(MessageType.GAME)) {
if (message.equals(lastMessage)) {
// prevent identical messages
return;
}
if (messageType.equals(MessageType.TALK)) {
User user = UserManager.getInstance().getUserByName(userName);
if (user != null) {
if (user.getChatLockedUntil() != null) {
if (user.getChatLockedUntil().compareTo(Calendar.getInstance().getTime()) > 0) {
chatSessions.get(chatId).broadcastInfoToUser(user, "Your chat is muted until " + SystemUtil.dateFormat.format(user.getChatLockedUntil()));
return;
} else {
user.setChatLockedUntil(null);
}
}
}
}
}
lastMessage = message;
chatSession.broadcast(userName, message, color, withTime, messageType, soundToPlay);
@ -195,7 +210,7 @@ public class ChatManager {
if (user != null) {
for (ChatSession chat : chatSessions.values()) {
if (chat.hasUser(userId)) {
chat.broadcast(user.getName(), message, color);
chat.broadcast(user.getName(), message, color, true, MessageType.TALK, null);
}
}
}
@ -206,7 +221,7 @@ public class ChatManager {
if (user != null) {
for (ChatSession chat : chatSessions.values()) {
if (chat.hasUser(userId)) {
chat.broadcast(null, user.getName() + " has reconnected", MessageColor.BLUE, true, MessageType.STATUS);
chat.broadcast(null, user.getName() + " has reconnected", MessageColor.BLUE, true, MessageType.STATUS, null);
}
}
}