001/*
002 * Trident - A Multithreaded Server Alternative
003 * Copyright 2014 The TridentSDK Team
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 *    http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package net.tridentsdk.registry;
018
019import net.tridentsdk.concurrent.Scheduler;
020import net.tridentsdk.concurrent.SelectableThreadPool;
021import net.tridentsdk.docs.InternalUseOnly;
022import net.tridentsdk.event.Events;
023import net.tridentsdk.inventory.Inventories;
024import net.tridentsdk.inventory.crafting.RecipeManager;
025import net.tridentsdk.meta.component.MetaProvider;
026import net.tridentsdk.plugin.Plugins;
027import net.tridentsdk.plugin.channel.PluginChannels;
028import net.tridentsdk.plugin.cmd.Commands;
029import net.tridentsdk.service.ChatFormatter;
030import net.tridentsdk.service.Transactions;
031import net.tridentsdk.world.MassChange;
032import net.tridentsdk.world.World;
033import net.tridentsdk.world.WorldLoader;
034import net.tridentsdk.world.gen.ChunkGenerator;
035
036import java.util.Map;
037
038@InternalUseOnly
039public interface Implementation {
040    SelectableThreadPool newPool(int i, String s);
041
042    WorldLoader newLoader(Class<? extends ChunkGenerator> g);
043    MassChange newMc(World world);
044
045    Map<String, World> worlds();
046
047    MetaProvider meta();
048
049    Transactions trasacts();
050
051    ChatFormatter format();
052
053    Players players();
054    PlayerStatus statuses();
055
056    Events events();
057    Plugins plugins();
058
059    PluginChannels channels();
060
061    Commands cmds();
062    Scheduler scheduler();
063    Inventories inventories();
064
065    RecipeManager recipe();
066}