use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.
the class LobbyGamePanel method shutDownHeadlessHostBot.
private void shutDownHeadlessHostBot() {
final int selectedIndex = gameTable.getSelectedRow();
if (selectedIndex == -1) {
return;
}
final int result = JOptionPane.showConfirmDialog(null, "Are you sure you want to perform a remote shutdown of this host? \n\nYou MUST email the host's owner FIRST!!", "Remote Shutdown Headless Host Bot", JOptionPane.OK_CANCEL_OPTION);
if (result != JOptionPane.OK_OPTION) {
return;
}
final INode lobbyWatcherNode = getLobbyWatcherNodeForTableRow(selectedIndex);
final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(AbstractModeratorController.getModeratorControllerName());
final JLabel label = new JLabel("Enter Host Remote Access Password, (Leave blank for no password).");
final JPasswordField passwordField = new JPasswordField();
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(label, BorderLayout.NORTH);
panel.add(passwordField, BorderLayout.CENTER);
final int selectedOption = JOptionPane.showOptionDialog(getTopLevelAncestor(), panel, "Host Remote Access Password?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
if (selectedOption != JOptionPane.OK_OPTION || passwordField.getPassword() == null) {
return;
}
final String password = new String(passwordField.getPassword());
final String salt = controller.getHeadlessHostBotSalt(lobbyWatcherNode);
final String hashedPassword = hashPassword(password, salt);
final String response = controller.shutDownHeadlessHostBot(lobbyWatcherNode, hashedPassword, salt);
JOptionPane.showMessageDialog(null, (response == null ? "Successfully attempted to shut down host" : "Failed: " + response));
}
use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.
the class LobbyGamePanel method getChatLogOfHeadlessHostBot.
private void getChatLogOfHeadlessHostBot() {
final int selectedIndex = gameTable.getSelectedRow();
if (selectedIndex == -1) {
return;
}
final int result = JOptionPane.showConfirmDialog(null, "Are you sure you want to perform a remote get chat log this host?", "Remote Get Chat Log Headless Host Bot", JOptionPane.OK_CANCEL_OPTION);
if (result != JOptionPane.OK_OPTION) {
return;
}
// we sort the table, so get the correct index
final INode lobbyWatcherNode = getLobbyWatcherNodeForTableRow(selectedIndex);
final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(AbstractModeratorController.getModeratorControllerName());
final JLabel label = new JLabel("Enter Host Remote Access Password, (Leave blank for no password).");
final JPasswordField passwordField = new JPasswordField();
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(label, BorderLayout.NORTH);
panel.add(passwordField, BorderLayout.CENTER);
final int selectedOption = JOptionPane.showOptionDialog(getTopLevelAncestor(), panel, "Host Remote Access Password?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
if (selectedOption != JOptionPane.OK_OPTION || passwordField.getPassword() == null) {
return;
}
final String password = new String(passwordField.getPassword());
final String salt = controller.getHeadlessHostBotSalt(lobbyWatcherNode);
final String hashedPassword = hashPassword(password, salt);
final String response = controller.getChatLogHeadlessHostBot(lobbyWatcherNode, hashedPassword, salt);
final JTextPane textPane = new JTextPane();
textPane.setEditable(false);
textPane.setText(response == null ? "Failed to get chat log!" : response);
textPane.setCaretPosition(textPane.getText().length());
final JScrollPane scroll = new JScrollPane(textPane);
final Dimension screenResolution = Toolkit.getDefaultToolkit().getScreenSize();
final int availWidth = screenResolution.width - 100;
final int availHeight = screenResolution.height - 140;
scroll.setPreferredSize(new Dimension(Math.min(availWidth, scroll.getPreferredSize().width), Math.min(availHeight, scroll.getPreferredSize().height)));
JOptionPane.showMessageDialog(null, scroll, "Bot Chat Log", JOptionPane.INFORMATION_MESSAGE);
}
use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.
the class LobbyGamePanel method banPlayerInHeadlessHostBot.
private void banPlayerInHeadlessHostBot() {
final int selectedIndex = gameTable.getSelectedRow();
if (selectedIndex == -1) {
return;
}
final int result = JOptionPane.showConfirmDialog(null, "Are you sure you want to perform a (permanent) remote ban player on this host?", "Remote Player Ban Headless Host Bot", JOptionPane.OK_CANCEL_OPTION);
if (result != JOptionPane.OK_OPTION) {
return;
}
final String playerToBeBanned = JOptionPane.showInputDialog(getTopLevelAncestor(), "Player Name To Be Banned?", "Player Name To Be Banned?", JOptionPane.QUESTION_MESSAGE);
if (playerToBeBanned == null) {
return;
}
final Object hours = JOptionPane.showInputDialog(getTopLevelAncestor(), "Hours to Ban for? (between 0 and 720, this is permanent and only a restart of the host will undo it!)", "Hours to Ban for?", JOptionPane.QUESTION_MESSAGE, null, null, 24);
if (hours == null) {
return;
}
final int hrs;
try {
hrs = Math.max(0, Math.min(24 * 30, Integer.parseInt((String) hours)));
} catch (final NumberFormatException e) {
return;
}
final INode lobbyWatcherNode = getLobbyWatcherNodeForTableRow(selectedIndex);
final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(AbstractModeratorController.getModeratorControllerName());
final JLabel label = new JLabel("Enter Host Remote Access Password, (Leave blank for no password).");
final JPasswordField passwordField = new JPasswordField();
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(label, BorderLayout.NORTH);
panel.add(passwordField, BorderLayout.CENTER);
final int selectedOption = JOptionPane.showOptionDialog(getTopLevelAncestor(), panel, "Host Remote Access Password?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
if (selectedOption != JOptionPane.OK_OPTION || passwordField.getPassword() == null) {
return;
}
final String password = new String(passwordField.getPassword());
final String salt = controller.getHeadlessHostBotSalt(lobbyWatcherNode);
final String hashedPassword = hashPassword(password, salt);
final String response = controller.banPlayerHeadlessHostBot(lobbyWatcherNode, playerToBeBanned, hrs, hashedPassword, salt);
JOptionPane.showMessageDialog(null, (response == null ? "Successfully attempted banned player (" + playerToBeBanned + ") on host" : "Failed: " + response));
}
use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.
the class LobbyGamePanel method bootPlayerInHeadlessHostBot.
private void bootPlayerInHeadlessHostBot() {
final int selectedIndex = gameTable.getSelectedRow();
if (selectedIndex == -1) {
return;
}
final int result = JOptionPane.showConfirmDialog(null, "Are you sure you want to perform a remote boot player on this host?", "Remote Player Boot Headless Host Bot", JOptionPane.OK_CANCEL_OPTION);
if (result != JOptionPane.OK_OPTION) {
return;
}
final String playerToBeBooted = JOptionPane.showInputDialog(getTopLevelAncestor(), "Player Name To Be Booted?", "Player Name To Be Booted?", JOptionPane.QUESTION_MESSAGE);
if (playerToBeBooted == null) {
return;
}
final INode lobbyWatcherNode = getLobbyWatcherNodeForTableRow(selectedIndex);
final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(AbstractModeratorController.getModeratorControllerName());
final JLabel label = new JLabel("Enter Host Remote Access Password, (Leave blank for no password).");
final JPasswordField passwordField = new JPasswordField();
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(label, BorderLayout.NORTH);
panel.add(passwordField, BorderLayout.CENTER);
final int selectedOption = JOptionPane.showOptionDialog(getTopLevelAncestor(), panel, "Host Remote Access Password?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
if (selectedOption != JOptionPane.OK_OPTION || passwordField.getPassword() == null) {
return;
}
final String password = new String(passwordField.getPassword());
final String salt = controller.getHeadlessHostBotSalt(lobbyWatcherNode);
final String hashedPassword = hashPassword(password, salt);
final String response = controller.bootPlayerHeadlessHostBot(lobbyWatcherNode, playerToBeBooted, hashedPassword, salt);
JOptionPane.showMessageDialog(null, (response == null ? "Successfully attempted to boot player (" + playerToBeBooted + ") on host" : "Failed: " + response));
}
use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.
the class LobbyGamePanel method mutePlayerInHeadlessHostBot.
private void mutePlayerInHeadlessHostBot() {
final int selectedIndex = gameTable.getSelectedRow();
if (selectedIndex == -1) {
return;
}
final int result = JOptionPane.showConfirmDialog(null, "Are you sure you want to perform a remote mute player on this host?", "Remote Player Mute Headless Host Bot", JOptionPane.OK_CANCEL_OPTION);
if (result != JOptionPane.OK_OPTION) {
return;
}
final String playerToBeMuted = JOptionPane.showInputDialog(getTopLevelAncestor(), "Player Name To Be Muted?", "Player Name To Be Muted?", JOptionPane.QUESTION_MESSAGE);
if (playerToBeMuted == null) {
return;
}
final Object minutes = JOptionPane.showInputDialog(getTopLevelAncestor(), "Minutes to Mute for? (between 0 and 2880, choose zero to unmute [works only if players is in the host])", "Minutes to Mute for?", JOptionPane.QUESTION_MESSAGE, null, null, 10);
if (minutes == null) {
return;
}
final int min;
try {
min = Math.max(0, Math.min(60 * 24 * 2, Integer.parseInt((String) minutes)));
} catch (final NumberFormatException e) {
return;
}
final INode lobbyWatcherNode = getLobbyWatcherNodeForTableRow(selectedIndex);
final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(AbstractModeratorController.getModeratorControllerName());
final JLabel label = new JLabel("Enter Host Remote Access Password, (Leave blank for no password).");
final JPasswordField passwordField = new JPasswordField();
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(label, BorderLayout.NORTH);
panel.add(passwordField, BorderLayout.CENTER);
final int selectedOption = JOptionPane.showOptionDialog(getTopLevelAncestor(), panel, "Host Remote Access Password?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
if (selectedOption != JOptionPane.OK_OPTION || passwordField.getPassword() == null) {
return;
}
final String password = new String(passwordField.getPassword());
final String salt = controller.getHeadlessHostBotSalt(lobbyWatcherNode);
final String hashedPassword = hashPassword(password, salt);
final String response = controller.mutePlayerHeadlessHostBot(lobbyWatcherNode, playerToBeMuted, min, hashedPassword, salt);
JOptionPane.showMessageDialog(null, (response == null ? "Successfully attempted to mute player (" + playerToBeMuted + ") on host" : "Failed: " + response));
}
Aggregations