Search in sources :

Example 1 with PluginContext

use of org.apollo.game.plugin.PluginContext in project apollo by apollo-rsps.

the class Server method init.

/**
 * Initialises the server.
 *
 * @param releaseName The class name of the current active {@link Release}.
 * @throws Exception If an error occurs.
 */
public void init(String releaseName) throws Exception {
    Class<?> clazz = Class.forName(releaseName);
    Release release = (Release) clazz.newInstance();
    int version = release.getReleaseNumber();
    logger.info("Initialized " + release + ".");
    serviceBootstrap.group(loopGroup);
    httpBootstrap.group(loopGroup);
    jaggrabBootstrap.group(loopGroup);
    World world = new World();
    ServiceManager services = new ServiceManager(world);
    IndexedFileSystem fs = new IndexedFileSystem(Paths.get("data/fs", Integer.toString(version)), true);
    ServerContext context = new ServerContext(release, services, fs);
    ApolloHandler handler = new ApolloHandler(context);
    ChannelInitializer<SocketChannel> service = new ServiceChannelInitializer(handler);
    serviceBootstrap.channel(NioServerSocketChannel.class);
    serviceBootstrap.childHandler(service);
    ChannelInitializer<SocketChannel> http = new HttpChannelInitializer(handler);
    httpBootstrap.channel(NioServerSocketChannel.class);
    httpBootstrap.childHandler(http);
    ChannelInitializer<SocketChannel> jaggrab = new JagGrabChannelInitializer(handler);
    jaggrabBootstrap.channel(NioServerSocketChannel.class);
    jaggrabBootstrap.childHandler(jaggrab);
    PluginManager manager = new PluginManager(world, new PluginContext(context));
    services.startAll();
    world.init(version, fs, manager);
}
Also used : SocketChannel(io.netty.channel.socket.SocketChannel) NioServerSocketChannel(io.netty.channel.socket.nio.NioServerSocketChannel) ServiceChannelInitializer(org.apollo.net.ServiceChannelInitializer) PluginContext(org.apollo.game.plugin.PluginContext) World(org.apollo.game.model.World) PluginManager(org.apollo.game.plugin.PluginManager) HttpChannelInitializer(org.apollo.net.HttpChannelInitializer) IndexedFileSystem(org.apollo.cache.IndexedFileSystem) ApolloHandler(org.apollo.game.session.ApolloHandler) JagGrabChannelInitializer(org.apollo.net.JagGrabChannelInitializer) Release(org.apollo.net.release.Release)

Aggregations

SocketChannel (io.netty.channel.socket.SocketChannel)1 NioServerSocketChannel (io.netty.channel.socket.nio.NioServerSocketChannel)1 IndexedFileSystem (org.apollo.cache.IndexedFileSystem)1 World (org.apollo.game.model.World)1 PluginContext (org.apollo.game.plugin.PluginContext)1 PluginManager (org.apollo.game.plugin.PluginManager)1 ApolloHandler (org.apollo.game.session.ApolloHandler)1 HttpChannelInitializer (org.apollo.net.HttpChannelInitializer)1 JagGrabChannelInitializer (org.apollo.net.JagGrabChannelInitializer)1 ServiceChannelInitializer (org.apollo.net.ServiceChannelInitializer)1 Release (org.apollo.net.release.Release)1