package com.techcavern.wavetact; import com.techcavern.wavetact.console.ConsoleClient; import com.techcavern.wavetact.eventListeners.MCStatusListener; import com.techcavern.wavetact.utils.*; import org.slf4j.impl.SimpleLogger; import java.io.File; import java.util.concurrent.TimeUnit; @SuppressWarnings("ConstantConditions") public class Main { public static void main(String[] args) throws Exception { System.err.println("\nWelcome to WaveTact!\n"); System.setProperty(SimpleLogger.SHOW_DATE_TIME_KEY, "true"); System.setProperty(SimpleLogger.DATE_TIME_FORMAT_KEY, "[yyyy/MM/dd HH:mm:ss]"); System.setProperty(SimpleLogger.LEVEL_IN_BRACKETS_KEY, "true"); if(args.length == 1 && args[0].equalsIgnoreCase("--windowsdev")){ load(true); }else{ if ((args.length >= 1) && args[0].equalsIgnoreCase("--client")) { ConsoleClient.go(); } else if (new File("./console.unixsocket").exists()) { System.err.println("Instance already started"); System.exit(0); } else { load(false); } } } public static void load(boolean isWindows) throws Exception{ LoadUtils.initiateDatabaseConnection(); LoadUtils.migrate(); ConfigUtils.registerNetworks(); LoadUtils.registerConsoleCommands(); LoadUtils.registerIRCCommands(); LoadUtils.registerCharReplacements(); LoadUtils.registerAttacks(); LoadUtils.registerEightball(); LoadUtils.initializeAutoFlushWhoisCache(); Registry.threadPool.execute(new MCStatusListener()); /** DatabaseUtils.addNetwork("Freenode", 6697, "irc.freenode.net", "WTTest", "#tctest", null, false, "JZTech101", "nickserv", , null, "nickserv", true); DatabaseUtils.addNetwork("Freenode3", 6697, "irc.freenode.net", "WTTest2", "#tctest", null, false, "JZTech101", "nickserv", null, null, null, true); DatabaseUtils.addNetwork("Freenode2", 6697, "irc.freenode.net", "WTTest3", "#tctest", null, false, "JZTech101", "nickserv", null, null, null, true); **/ if(!isWindows) Registry.threadPool.execute(Registry.consoleServer); Registry.WaveTact.start(); LoadUtils.initializeMessageQueue(); LoadUtils.initializeBanQueue(); LoadUtils.initializeVoiceQueue(); Registry.threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS); } }