Search in sources :

Example 6 with IModeratorController

use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.

the class LobbyGamePanel method bootGame.

private void bootGame() {
    final int selectedIndex = gameTable.getSelectedRow();
    if (selectedIndex == -1) {
        return;
    }
    final int result = JOptionPane.showConfirmDialog(null, "Are you sure you want to disconnect the selected game?", "Remove Game From Lobby", JOptionPane.OK_CANCEL_OPTION);
    if (result != JOptionPane.OK_OPTION) {
        return;
    }
    final INode lobbyWatcherNode = getLobbyWatcherNodeForTableRow(selectedIndex);
    final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(AbstractModeratorController.getModeratorControllerName());
    controller.boot(lobbyWatcherNode);
    JOptionPane.showMessageDialog(null, "The game you selected has been disconnected from the lobby.");
}
Also used : INode(games.strategy.net.INode) IModeratorController(games.strategy.engine.lobby.server.IModeratorController)

Example 7 with IModeratorController

use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.

the class LobbyClient method isAdmin.

public boolean isAdmin() {
    if (isAdmin == null) {
        final IModeratorController controller = (IModeratorController) messengers.getRemoteMessenger().getRemote(ModeratorController.getModeratorControllerName());
        isAdmin = controller.isAdmin();
    }
    return isAdmin;
}
Also used : IModeratorController(games.strategy.engine.lobby.server.IModeratorController)

Example 8 with IModeratorController

use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.

the class LobbyMenu method addDisplayPlayersInformationMenu.

private void addDisplayPlayersInformationMenu(final JMenu parentMenu) {
    final JMenuItem revive = new JMenuItem("Display Players Information");
    revive.setEnabled(true);
    revive.addActionListener(event -> new Thread(() -> {
        final IModeratorController controller = (IModeratorController) lobbyFrame.getLobbyClient().getMessengers().getRemoteMessenger().getRemote(ModeratorController.getModeratorControllerName());
        final StringBuilder builder = new StringBuilder();
        builder.append("Online Players:\r\n\r\n");
        for (final INode player : lobbyFrame.getChatMessagePanel().getChat().getOnlinePlayers()) {
            builder.append(controller.getInformationOn(player)).append("\r\n\r\n");
        }
        builder.append("Players That Have Left (Last 10):\r\n\r\n");
        for (final INode player : lobbyFrame.getChatMessagePanel().getChat().getPlayersThatLeft_Last10()) {
            builder.append(controller.getInformationOn(player)).append("\r\n\r\n");
        }
        SwingUtilities.invokeLater(() -> {
            final JDialog dialog = new JDialog(lobbyFrame, "Players Information");
            final JTextArea label = new JTextArea(builder.toString());
            label.setFont(new Font("Segoe UI", Font.PLAIN, 12));
            label.setEditable(false);
            label.setAutoscrolls(true);
            label.setLineWrap(false);
            label.setFocusable(true);
            label.setWrapStyleWord(true);
            label.setLocation(0, 0);
            dialog.setBackground(label.getBackground());
            dialog.setLayout(new BorderLayout());
            final JScrollPane pane = new JScrollPane();
            pane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
            pane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
            pane.setViewportView(label);
            dialog.add(pane, BorderLayout.CENTER);
            final JButton button = new JButton("Close");
            button.addActionListener(e -> dialog.dispose());
            button.setMinimumSize(new Dimension(100, 30));
            dialog.add(button, BorderLayout.SOUTH);
            dialog.setMinimumSize(new Dimension(500, 300));
            dialog.setSize(new Dimension(800, 600));
            dialog.setResizable(true);
            dialog.setLocationRelativeTo(lobbyFrame);
            dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            dialog.setVisible(true);
        });
    }).start());
    parentMenu.add(revive);
}
Also used : JScrollPane(javax.swing.JScrollPane) IModeratorController(games.strategy.engine.lobby.server.IModeratorController) INode(games.strategy.net.INode) JTextArea(javax.swing.JTextArea) BorderLayout(java.awt.BorderLayout) JButton(javax.swing.JButton) Dimension(java.awt.Dimension) JMenuItem(javax.swing.JMenuItem) JDialog(javax.swing.JDialog) Font(java.awt.Font)

Example 9 with IModeratorController

use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.

the class LobbyMenu method addUnbanUsernameMenu.

private void addUnbanUsernameMenu(final JMenu parentMenu) {
    final JMenuItem item = new JMenuItem("Unban Username");
    item.addActionListener(e -> {
        final String name = JOptionPane.showInputDialog(null, "Enter the username that you want to unban from the lobby.", "");
        if (name == null || name.length() < 1) {
            return;
        }
        if (!DBUser.isValidUserName(name)) {
            JOptionPane.showMessageDialog(lobbyFrame, "The username you entered is invalid.", "Invalid Username", JOptionPane.ERROR_MESSAGE);
            return;
        }
        final IModeratorController controller = (IModeratorController) lobbyFrame.getLobbyClient().getMessengers().getRemoteMessenger().getRemote(ModeratorController.getModeratorControllerName());
        controller.banUsername(newDummyNode(name), Date.from(Instant.EPOCH));
    });
    item.setEnabled(true);
    parentMenu.add(item);
}
Also used : IModeratorController(games.strategy.engine.lobby.server.IModeratorController) JMenuItem(javax.swing.JMenuItem)

Example 10 with IModeratorController

use of games.strategy.engine.lobby.server.IModeratorController in project triplea by triplea-game.

the class LobbyMenu method addBanUsernameMenu.

private void addBanUsernameMenu(final JMenu parentMenu) {
    final JMenuItem item = new JMenuItem("Ban Username");
    item.addActionListener(e -> {
        final String name = JOptionPane.showInputDialog(null, "Enter the username that you want to ban from the lobby.\r\n\r\n" + "Note that this ban is effective on any username, registered or anonymous, online or offline.", "");
        if (name == null || name.length() < 1) {
            return;
        }
        if (!DBUser.isValidUserName(name)) {
            JOptionPane.showMessageDialog(lobbyFrame, "The username you entered is invalid.", "Invalid Username", JOptionPane.ERROR_MESSAGE);
            return;
        }
        TimespanDialog.prompt(lobbyFrame, "Select Timespan", "Please consult other admins before banning longer than 1 day.", date -> {
            final IModeratorController controller = (IModeratorController) lobbyFrame.getLobbyClient().getMessengers().getRemoteMessenger().getRemote(ModeratorController.getModeratorControllerName());
            controller.banUsername(newDummyNode(name), date);
        });
    });
    item.setEnabled(true);
    parentMenu.add(item);
}
Also used : IModeratorController(games.strategy.engine.lobby.server.IModeratorController) JMenuItem(javax.swing.JMenuItem)

Aggregations

IModeratorController (games.strategy.engine.lobby.server.IModeratorController)15 INode (games.strategy.net.INode)10 BorderLayout (java.awt.BorderLayout)8 JLabel (javax.swing.JLabel)7 JPanel (javax.swing.JPanel)7 JPasswordField (javax.swing.JPasswordField)6 JMenuItem (javax.swing.JMenuItem)5 Dimension (java.awt.Dimension)3 JTextPane (javax.swing.JTextPane)3 JScrollPane (javax.swing.JScrollPane)2 ImmutableList (com.google.common.collect.ImmutableList)1 Chat (games.strategy.engine.chat.Chat)1 ChatMessagePanel (games.strategy.engine.chat.ChatMessagePanel)1 ChatPlayerPanel (games.strategy.engine.chat.ChatPlayerPanel)1 GameRunner (games.strategy.engine.framework.GameRunner)1 LobbyClient (games.strategy.engine.lobby.client.LobbyClient)1 LobbyServerProperties (games.strategy.engine.lobby.client.login.LobbyServerProperties)1 LobbyServer (games.strategy.engine.lobby.server.LobbyServer)1 ModeratorController (games.strategy.engine.lobby.server.ModeratorController)1 LobbyMenu (games.strategy.triplea.ui.menubar.LobbyMenu)1