/** * */ package com.teefun.util; import java.util.Random; import com.teefun.model.teeworlds.TeeworldsConfig; /** * Utility class for {@link TeeworldsConfig}. * * @author Rajh * */ public final class TeeworldsConfigUtil { /** * Private constructor for utility classes. */ private TeeworldsConfigUtil() { } /** * Symbols allowed in password. */ private static final char[] symbols; /** * Random generator. */ private static final Random random = new Random(); static { final StringBuilder tmp = new StringBuilder(); for (char ch = '0'; ch <= '9'; ++ch) { tmp.append(ch); } for (char ch = 'a'; ch <= 'z'; ++ch) { tmp.append(ch); } symbols = tmp.toString().toCharArray(); } /** * @return server default configuration */ public static TeeworldsConfig getDefaultConfig() { final TeeworldsConfig config = new TeeworldsConfig(); config.setVariable("password", ""); config.setVariable("sv_name", "TeeFun server"); config.setVariable("sv_port", 8303); config.setVariable("sv_map", "dm1"); config.setVariable("sv_max_clients", 16); config.setVariable("sv_max_clients_per_ip", 1); config.setVariable("sv_register", 1); config.setVariable("sv_rcon_password", ""); config.setVariable("sv_auto_demo_record", 1); config.setVariable("sv_auto_demo_max", 0); config.setVariable("sv_warmup", 1); config.setVariable("sv_motd", "Welcome on TeeFun server!"); config.setVariable("sv_teamdamage", 0); config.setVariable("sv_maprotation", ""); config.setVariable("sv_rounds_per_map", 1); config.setVariable("sv_round_swap", 1); config.setVariable("sv_powerups", 0); config.setVariable("sv_scorelimit", 10); config.setVariable("sv_timelimit", 5); config.setVariable("sv_gametype", "dm"); config.setVariable("sv_tournament_mode", 1); config.setVariable("sv_spamprotection", 1); config.setVariable("sv_respawn_delay_tdm", 2); config.setVariable("sv_teambalance_time", 0); config.setVariable("sv_inactivekick_time", 0); config.setVariable("sv_inactivekick", 1); config.setVariable("sv_strict_spectate_mode", 0); config.setVariable("sv_vote_spectate", 1); config.setVariable("sv_vote_spectate_rejoindelay", 0); config.setVariable("sv_vote_kick", 1); config.setVariable("sv_vote_kick_min", 0); config.setVariable("sv_vote_kick_bantime", 3); return config; } /** * Generate a random string. * * @param length the string length * @return the string */ public static String getRandomString(final int length) { final char[] buf = new char[length]; for (int idx = 0; idx < buf.length; ++idx) { buf[idx] = symbols[random.nextInt(symbols.length)]; } return new String(buf); } }