// Copyright (c) 2015 Christopher "BlayTheNinth" Baker
package net.blay09.mods.eirairc.util;
import net.blay09.mods.eirairc.api.irc.IRCChannel;
import net.blay09.mods.eirairc.api.irc.IRCConnection;
import net.blay09.mods.eirairc.api.irc.IRCContext;
import net.blay09.mods.eirairc.config.ChannelConfig;
import net.blay09.mods.eirairc.config.ConfigurationHandler;
import net.blay09.mods.eirairc.config.ServerConfig;
import net.blay09.mods.eirairc.config.SharedGlobalConfig;
import net.blay09.mods.eirairc.config.settings.BotSettings;
import net.blay09.mods.eirairc.config.settings.GeneralSettings;
import net.blay09.mods.eirairc.config.settings.ThemeSettings;
import net.blay09.mods.eirairc.irc.IRCConnectionImpl;
public class ConfigHelper {
public static String formatNick(String format) {
String s = format;
s = s.replace("%USERNAME%", Utils.getUsername());
s = s.replace("%ANONYMOUS%", "justinfan" + String.valueOf((int) (Math.random() * 1000000)) + String.valueOf(((int) (Math.random() * 1000000))));
return s;
}
public static String getNick(ServerConfig serverConfig) {
if(serverConfig.getNick() != null && !serverConfig.getNick().isEmpty()) {
return serverConfig.getNick();
}
return Globals.DEFAULT_NICK;
}
public static String getQuitMessage(IRCConnection connection) {
return ConfigurationHandler.getOrCreateServerConfig(connection.getHost()).getBotSettings().quitMessage.get();
}
public static ServerConfig getServerConfig(IRCConnection connection) {
return ((IRCConnectionImpl) connection).getServerConfig();
}
public static ChannelConfig getChannelConfig(IRCChannel channel) {
return getServerConfig(channel.getConnection()).getOrCreateChannelConfig(channel);
}
public static ThemeSettings getTheme(IRCContext context) {
if(context instanceof IRCChannel) {
return getChannelConfig((IRCChannel) context).getTheme();
}
return SharedGlobalConfig.theme;
}
public static BotSettings getBotSettings(IRCContext context) {
if(context instanceof IRCChannel) {
return getChannelConfig((IRCChannel) context).getBotSettings();
}
return SharedGlobalConfig.botSettings;
}
public static GeneralSettings getGeneralSettings(IRCContext context) {
if(context instanceof IRCChannel) {
return getChannelConfig((IRCChannel) context).getGeneralSettings();
}
return SharedGlobalConfig.generalSettings;
}
public static ServerConfig resolveServerConfig(String target) {
int pathSplitIndex = target.indexOf('/');
if(pathSplitIndex != -1) {
target = target.substring(0, pathSplitIndex - 1);
}
return ConfigurationHandler.getServerConfig(target);
}
public static ChannelConfig resolveChannelConfig(String target) {
int pathSplitIndex = target.indexOf('/');
ServerConfig serverConfig = null;
if(pathSplitIndex != -1) {
serverConfig = ConfigurationHandler.getServerConfig(target.substring(0, pathSplitIndex - 1));
target = target.substring(pathSplitIndex + 1);
}
if(serverConfig != null) {
return serverConfig.getChannelConfig(target);
} else {
for(ServerConfig config : ConfigurationHandler.getServerConfigs()) {
if(config.hasChannelConfig(target)) {
return config.getChannelConfig(target);
}
}
}
return null;
}
}