public static String csv(Iterable<?> objects) { return format( objects, ", " ); }
public void setId(String id) { try { uniqueId = Util.getUUID( id ); } catch ( Exception e ) { // Fallback on a valid uuid otherwise Minecraft complains uniqueId = md5UUID; } }
@Override public void exception(Throwable t) throws Exception { disconnect( ChatColor.RED + Util.exception( t ) ); }
@Override public void execute(CommandSender sender, String[] args) { Set<String> permissions = new HashSet<>(); for ( String group : sender.getGroups() ) { permissions.addAll( ProxyServer.getInstance().getConfigurationAdapter().getPermissions( group ) ); } sender.sendMessage( ChatColor.GOLD + "You have the following groups: " + Util.csv( sender.getGroups() ) ); for ( String permission : permissions ) { sender.sendMessage( ChatColor.BLUE + "- " + permission ); } } }
@Override @SuppressWarnings("unchecked") public Map<String, ServerInfo> getServers() { Map<String, Map<String, Object>> base = get( "servers", (Map) Collections.singletonMap( "lobby", new HashMap<>() ) ); Map<String, ServerInfo> ret = new HashMap<>(); for ( Map.Entry<String, Map<String, Object>> entry : base.entrySet() ) { Map<String, Object> val = entry.getValue(); String name = entry.getKey(); String addr = get( "address", "localhost:25565", val ); String motd = ChatColor.translateAlternateColorCodes( '&', get( "motd", "&1Just another BungeeCord - Forced Host", val ) ); boolean restricted = get( "restricted", false, val ); InetSocketAddress address = Util.getAddr( addr ); ServerInfo info = ProxyServer.getInstance().constructServerInfo( name, address, motd, restricted ); ret.put( name, info ); } return ret; }
public String getId() { return Util.getMojangUUID(uniqueId); } }
String host = get( "host", "0.0.0.0:25577", val ); int tabListSize = get( "tab_size", 60, val ); InetSocketAddress address = Util.getAddr( host ); Map<String, String> forced = new CaseInsensitiveMap<>( get( "forced_hosts", forcedDef, val ) ); String tabListName = get( "tab_list", "GLOBAL_PING", val );
@Override public String getUUID() { return Util.getMojangUUID(uniqueId); }
public PluginMessage registerChannels(int protocolVersion) { if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_13 ) { return new PluginMessage( "minecraft:register", Util.format( Iterables.transform( pluginChannels, PluginMessage.MODERNISE ), "\00" ).getBytes( Charsets.UTF_8 ), false ); } return new PluginMessage( "REGISTER", Util.format( pluginChannels, "\00" ).getBytes( Charsets.UTF_8 ), false ); }
@Override public void done(String result, Throwable error) { if ( error == null ) { LoginResult obj = BungeeCord.getInstance().gson.fromJson( result, LoginResult.class ); if ( obj != null && obj.getId() != null ) { loginProfile = obj; name = obj.getName(); uniqueId = Util.getUUID( obj.getId() ); finish(); return; } disconnect( bungee.getTranslation( "offline_mode_player" ) ); } else { disconnect( bungee.getTranslation( "mojang_fail" ) ); bungee.getLogger().log( Level.SEVERE, "Error authenticating " + getName() + " with minecraft.net", error ); } } };
@Override public void exception(Throwable t) throws Exception { con.disconnect( Util.exception( t ) ); }
@Override public void execute(CommandSender sender, String[] args) { Set<String> permissions = new HashSet<>(); for ( String group : sender.getGroups() ) { permissions.addAll( ProxyServer.getInstance().getConfigurationAdapter().getPermissions( group ) ); } sender.sendMessage( ChatColor.GOLD + "You have the following groups: " + Util.csv( sender.getGroups() ) ); for ( String permission : permissions ) { sender.sendMessage( ChatColor.BLUE + "- " + permission ); } } }
@Override @SuppressWarnings("unchecked") public Map<String, ServerInfo> getServers() { Map<String, Map<String, Object>> base = get( "servers", (Map) Collections.singletonMap( "lobby", new HashMap<>() ) ); Map<String, ServerInfo> ret = new HashMap<>(); for ( Map.Entry<String, Map<String, Object>> entry : base.entrySet() ) { Map<String, Object> val = entry.getValue(); String name = entry.getKey(); String addr = get( "address", "localhost:25565", val ); String motd = ChatColor.translateAlternateColorCodes( '&', get( "motd", "&1Just another Waterfall - Forced Host", val ) ); boolean restricted = get( "restricted", false, val ); InetSocketAddress address = Util.getAddr( addr ); ServerInfo info = ProxyServer.getInstance().constructServerInfo( name, address, motd, restricted ); ret.put( name, info ); } return ret; }
@Override public void execute(CommandSender sender, String[] args) { for ( ServerInfo server : ProxyServer.getInstance().getServers().values() ) { if ( !server.canAccess( sender ) ) { continue; } List<String> players = new ArrayList<>(); for ( ProxiedPlayer player : server.getPlayers() ) { players.add( player.getDisplayName() ); } Collections.sort( players, String.CASE_INSENSITIVE_ORDER ); sender.sendMessage( ProxyServer.getInstance().getTranslation( "command_list", server.getName(), server.getPlayers().size(), Util.format( players, ChatColor.RESET + ", " ) ) ); } sender.sendMessage( ProxyServer.getInstance().getTranslation( "total_players", ProxyServer.getInstance().getOnlineCount() ) ); } }
public void setId(String id) { try { uniqueId = Util.getUUID( id ); } catch ( Exception e ) { // Fallback on a valid uuid otherwise Minecraft complains uniqueId = md5UUID; } }
@Override public void retrieve(ModuleSpec module, ModuleVersion version) { System.out.println( "Attempting to Jenkins download module " + module.getName() + " v" + version.getBuild() ); try { URL website = new URL( "https://ci.md-5.net/job/BungeeCord/" + version.getBuild() + "/artifact/module/" + module.getName().replace( '_', '-' ) + "/target/" + module.getName() + ".jar" ); URLConnection con = website.openConnection(); // 15 second timeout at various stages con.setConnectTimeout( 15000 ); con.setReadTimeout( 15000 ); Files.write( ByteStreams.toByteArray( con.getInputStream() ), module.getFile() ); System.out.println( "Download complete" ); } catch ( IOException ex ) { System.out.println( "Failed to download: " + Util.exception( ex ) ); } } }
String host = get( "host", "0.0.0.0:25577", val ); int tabListSize = get( "tab_size", 60, val ); InetSocketAddress address = Util.getAddr( host ); Map<String, String> forced = new CaseInsensitiveMap<>( get( "forced_hosts", forcedDef, val ) ); String tabListName = get( "tab_list", "GLOBAL_PING", val );
public static String csv(Iterable<?> objects) { return format( objects, ", " ); }