mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 13:02:06 -08:00
Added sending broadcast message to all users on server from Admin Console.
This commit is contained in:
parent
8536d9d78d
commit
bdb2754847
10 changed files with 114 additions and 33 deletions
|
|
@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue