package games.strategy.engine.lobby.server; import java.util.Date; import games.strategy.engine.message.IRemote; import games.strategy.net.INode; public interface IModeratorController extends IRemote { /** * Boot the given INode from the network. * * <p> * This method can only be called by admin users. * </p> */ void boot(INode node); /** * Ban the username of the given INode. */ void banUsername(INode node, Date banExpires); /** * Ban the ip of the given INode. * * @deprecated Remove usages of this, banUserName and banMac are sufficient */ @Deprecated void banIp(INode node, Date banExpires); /** * Ban the mac of the given INode. */ void banMac(INode node, Date banExpires); /** * Ban the mac. */ void banMac(final INode node, final String hashedMac, final Date banExpires); /** * Mute the username of the given INode. */ void muteUsername(INode node, Date muteExpires); /** * Mute the ip of the given INode. * * @deprecated Remove usages of this, muteUserName and muteMac are sufficient */ @Deprecated void muteIp(INode node, Date muteExpires); /** * Mute the mac of the given INode. */ void muteMac(INode node, Date muteExpires); /** * Get list of people in the game. */ String getHostConnections(INode node); /** * Remote get chat log of a headless host bot. */ String getChatLogHeadlessHostBot(INode node, String hashedPassword, String salt); /** * Remote mute player in a headless host bot. */ String mutePlayerHeadlessHostBot(INode node, String playerNameToBeBooted, int minutes, String hashedPassword, String salt); /** * Remote boot player in a headless host bot. */ String bootPlayerHeadlessHostBot(INode node, String playerNameToBeBooted, String hashedPassword, String salt); /** * Remote ban player in a headless host bot. */ String banPlayerHeadlessHostBot(INode node, String playerNameToBeBanned, int hours, String hashedPassword, String salt); /** * Remote stop game of a headless host bot. */ String stopGameHeadlessHostBot(INode node, String hashedPassword, String salt); /** * Remote shutdown of a headless host bot. */ String shutDownHeadlessHostBot(INode node, String hashedPassword, String salt); /** * For use with a password for the bot. */ String getHeadlessHostBotSalt(INode node); /** * Reset the password of the given user. Returns null if the password was updated without error. * * <p> * You cannot change the password of an anonymous node, and you cannot change the password for an admin user. * </p> * * @deprecated Remove usages of this. Does not make sense for moderators to be able to reset passwords of logged * in users. */ @Deprecated String setPassword(INode node, String hashedPassword); String getInformationOn(INode node); /** * Is the current user an admin. */ boolean isAdmin(); /** * Is this node an admin. */ boolean isPlayerAdmin(final INode node); }