/* * Created by Andrey Cherkashin (acherkashin) * http://acherkashin.me * * License * Copyright (c) 2015 Andrey Cherkashin * The project released under the MIT license: http://opensource.org/licenses/MIT */ package ragefist; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import ragefist.core.distribution.DistributedServerController; import ragefist.core.distribution.DistributedServerController.DistributedServerControllerBuilder; import ragefist.extension.Extension; import ragefist.extension.ExtensionLoader; import ragefist.packets.PacketHandlerClient; import ragefist.packets.PacketHandlerConsole; import ragefist.packets.PacketHandlerRPC; /** * * @author acherkashin */ public class Main { private static DistributedServerController _controller; // ---------------------------------------------------------------------- // // PUBLIC // ---------------------------------------------------------------------- // /** * @param args the command line arguments */ public static void main(String[] args) { // ---------------------------------------------------------------------- // // LOAD CONFIGURATION // ---------------------------------------------------------------------- // Config.load(); // ---------------------------------------------------------------------- // // LOAD SERVER // ---------------------------------------------------------------------- // DistributedServerControllerBuilder controllerBuilder = new DistributedServerControllerBuilder(); controllerBuilder.serverGroupMap = Config.ServerGroups; controllerBuilder.controlledServer = Config.CurrentServer; controllerBuilder.controlledServerGroup = Config.CurrentServerGroup; controllerBuilder.clientPacketHandlerClass = PacketHandlerClient.class; controllerBuilder.rpcPacketHandlerClass = PacketHandlerRPC.class; controllerBuilder.consolePacketHandlerClass = PacketHandlerConsole.class; controllerBuilder.disableCrossEnvironmentInteraction = Config.DisableCrossEnvironmentInteraction; controllerBuilder.isTestServer = Config.IsTestServer; try { _controller = controllerBuilder.build(); } catch(IllegalArgumentException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Failed to create DistributedServerController", ex); } // ---------------------------------------------------------------------- // // LOAD EXTENSIONS // ---------------------------------------------------------------------- // for(String extensionName : Config.Extensions) { Extension extension = ExtensionLoader.load(extensionName); if (extension == null) { Logger.getLogger(Main.class.getName()).log(Level.WARNING, "Failed to load extension "+extensionName); continue; } _controller.addExtension(extension); Logger.getLogger(Main.class.getName()).log(Level.FINE, "Extension "+extensionName+" is loaded"); } // START _controller.start(); } }