private MimeMessage buildMessage(User player, String email, String newPassword, MailConfig emailConfig, Session session) throws MessagingException, UnsupportedEncodingException { String serverName = Sponge.getServer().getBoundAddress() .map(sa -> sa.getAddress().getHostAddress()) .orElse("Minecraft Server"); ImmutableMap<String, String> variables = ImmutableMap.of("player", player.getName(), "server", serverName, "password", newPassword); MimeMessage message = new MimeMessage(session); String senderEmail = emailConfig.getAccount(); //sender email with an alias message.setFrom(new InternetAddress(senderEmail, emailConfig.getSenderName())); message.setRecipient(RecipientType.TO, new InternetAddress(email, player.getName())); message.setSubject(emailConfig.getSubject(serverName, player.getName()).toPlain()); //current time message.setSentDate(Calendar.getInstance().getTime()); String textContent = emailConfig.getText(serverName, player.getName(), newPassword).toPlain(); //html part BodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(textContent, "text/html; charset=UTF-8"); //plain text BodyPart textPart = new MimeBodyPart(); textPart.setContent(textContent.replaceAll("(?s)<[^>]*>(\\s*<[^>]*>)*", " "), "text/plain; charset=UTF-8"); Multipart alternative = new MimeMultipart("alternative"); alternative.addBodyPart(htmlPart); alternative.addBodyPart(textPart); message.setContent(alternative); return message; }
public SpongeServerProperties(Game game) { super( game.getServer().getMotd().toPlain(), "Sponge", game.getServer().getBoundAddress().orElseGet(() -> new InetSocketAddress(25565)).getPort(), game.getPlatform().getMinecraftVersion().getName(), game.getPlatform().getMinecraftVersion().getName(), () -> game.getServer().getBoundAddress() .orElseGet(() -> new InetSocketAddress(25565)) .getAddress().getHostAddress(), game.getServer().getMaxPlayers(), () -> game.getServer().getOnlinePlayers().size() ); } }
private Server mockServer() { Server server = Mockito.mock(Server.class); Text motd = Mockito.mock(Text.class); doReturn("Motd").when(motd).toPlain(); Optional<InetSocketAddress> ip = Optional.of(new InetSocketAddress(25565)); int maxPlayers = 20; List<Player> online = new ArrayList<>(); doReturn(motd).when(server).getMotd(); doReturn(ip).when(server).getBoundAddress(); doReturn(maxPlayers).when(server).getMaxPlayers(); doReturn(online).when(server).getOnlinePlayers(); return server; }
public ServerInfo() { Server server = Sponge.getServer(); Platform platform = Sponge.getPlatform(); this.motd = server.getMotd().toBuilder().build(); this.players = server.getOnlinePlayers().size(); this.maxPlayers = server.getMaxPlayers(); if (server.getBoundAddress().isPresent()) { InetSocketAddress addr = server.getBoundAddress().get(); this.address = addr.getHostName() + (addr.getPort() == 25565 ? "" : ":" + addr.getPort()); } this.onlineMode = server.getOnlineMode(); this.resourcePack = server.getDefaultResourcePack().map(ResourcePack::getName).orElse(null); this.hasWhitelist = server.hasWhitelist(); this.uptimeTicks = server.getRunningTimeTicks(); this.tps = server.getTicksPerSecond(); this.minecraftVersion = platform.getMinecraftVersion().getName(); this.game = new CachedPluginContainer(platform.getContainer(Platform.Component.GAME)); this.api = new CachedPluginContainer(platform.getContainer(Platform.Component.API)); this.implementation = new CachedPluginContainer(platform.getContainer(Platform.Component.IMPLEMENTATION)); } }
private void sendTotpHint(String secretCode) { //I assume this thread-safe, because PlayerChat is also in an async task String hostName = Sponge.getServer().getBoundAddress() .map(InetSocketAddress::getAddress) .map(InetAddress::getCanonicalHostName) .orElse("Minecraft Server"); try { TOTP hasher = (TOTP) plugin.getHasher(); URL barcodeUrl = new URL(hasher.getGoogleBarcodeURL(player.getName(), hostName, secretCode)); String readableSecret = Splitter.fixedLength(4).splitToList(secretCode).stream() .collect(Collectors.joining(" ")); Text keyGenerated = plugin.getConfigManager().getText().getKeyGenerated(readableSecret); player.sendMessage(keyGenerated); player.sendMessage(plugin.getConfigManager().getText().getScanQR().toBuilder() .onClick(openUrl(barcodeUrl)) .build()); } catch (MalformedURLException ex) { plugin.getLogger().error("Malformed TOTP url link", ex); } } }
String serverIP = (Sponge.getServer().getBoundAddress().isPresent()) ? Sponge.getServer().getBoundAddress().get().getHostName() : "?"; int serverPort = (Sponge.getServer().getBoundAddress().isPresent()) ? Sponge.getServer().getBoundAddress().get().getPort() : -1;