Added sending broadcast message to all users on server from Admin Console.

This commit is contained in:
magenoxx 2012-01-25 19:13:27 +04:00
parent 8536d9d78d
commit bdb2754847
10 changed files with 114 additions and 33 deletions

View file

@ -28,9 +28,10 @@
package mage.server;
import mage.view.ChatMessage.MessageColor;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import mage.view.ChatMessage.MessageColor;
/**
*

View file

@ -36,6 +36,7 @@ import mage.game.tournament.TournamentOptions;
import mage.interfaces.Action;
import mage.interfaces.MageServer;
import mage.interfaces.ServerState;
import mage.interfaces.callback.ClientCallback;
import mage.remote.MageVersionException;
import mage.server.draft.DraftManager;
import mage.server.game.*;
@ -45,8 +46,8 @@ import mage.server.util.ServerMessagesUtil;
import mage.server.util.ThreadExecutor;
import mage.utils.CompressUtil;
import mage.utils.MageVersion;
import mage.view.ChatMessage.MessageColor;
import mage.view.*;
import mage.view.ChatMessage.MessageColor;
import org.apache.log4j.Logger;
import java.util.ArrayList;
@ -741,6 +742,22 @@ public class MageServerImpl implements MageServer {
return null;
}
public void sendBroadcastMessage(final String sessionId, final String message) throws MageException {
execute(sessionId, new Action() {
public void execute() {
if (SessionManager.getInstance().isAdmin(sessionId) && message != null) {
for (User user: UserManager.getInstance().getUsers()) {
if (message.toLowerCase().startsWith("warn")) {
user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.RED)));
} else {
user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.BLUE)));
}
}
}
}
});
}
protected void execute(final String sessionId, final Action action) throws MageException {
if (SessionManager.getInstance().isValidSession(sessionId)) {
try {

View file

@ -28,8 +28,6 @@
package mage.server;
import java.util.Date;
import java.util.UUID;
import mage.MageException;
import mage.interfaces.callback.ClientCallback;
import mage.players.net.UserData;
@ -41,6 +39,9 @@ import org.jboss.remoting.callback.Callback;
import org.jboss.remoting.callback.HandleCallbackException;
import org.jboss.remoting.callback.InvokerCallbackHandler;
import java.util.Date;
import java.util.UUID;
/**
*
* @author BetaSteward_at_googlemail.com
@ -89,6 +90,9 @@ public class Session {
public void registerAdmin() {
this.isAdmin = true;
User user = UserManager.getInstance().createUser("Admin", host);
if (user == null) {
user = UserManager.getInstance().findUser("Admin");
}
user.setUserData(new UserData(UserGroup.ADMIN, 0));
this.userId = user.getId();
}