79 lines
2.9 KiB
Java
79 lines
2.9 KiB
Java
package com.alttd.hunger_games;
|
|
|
|
import com.alttd.hunger_games.commands.BaseCommand;
|
|
import com.alttd.hunger_games.config.Config;
|
|
import com.alttd.hunger_games.config.LootItems;
|
|
import com.alttd.hunger_games.config.Messages;
|
|
import com.alttd.hunger_games.event_listeners.*;
|
|
import com.alttd.hunger_games.services.*;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.bukkit.plugin.PluginManager;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
@Slf4j
|
|
public final class Main extends JavaPlugin {
|
|
|
|
private Round round;
|
|
private RoundService roundService;
|
|
private PlayerService playerService;
|
|
private PlayerTeleporterService playerTeleporterService;
|
|
private LootService lootService;
|
|
private StatService statService;
|
|
private BossBarService bossBarService;
|
|
private TabListService tabListService;
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
log.info("Starting HungerGames");
|
|
reloadConfigs();
|
|
registerServices();
|
|
registerCommands();
|
|
registerEvents();
|
|
registerSchedulers();
|
|
}
|
|
|
|
private void registerServices() {
|
|
round = Round.createSingletonInstance();
|
|
lootService = new LootService();
|
|
statService = new StatService(this, round);
|
|
playerTeleporterService = PlayerTeleporterService.createSingletonInstance();
|
|
roundService = RoundService.createSingletonInstance(round, this, lootService, statService, playerTeleporterService);
|
|
tabListService = new TabListService(round, roundService);
|
|
roundService.setTabListService(tabListService);
|
|
playerService = PlayerService.createSingletonInstance(round, roundService, playerTeleporterService);
|
|
|
|
bossBarService = BossBarService.createSingletonInstance(round, roundService);
|
|
round.setBossBarService(bossBarService);
|
|
roundService.setBossBarService(bossBarService);
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
log.info("Disabling HungerGames");
|
|
}
|
|
|
|
private void registerCommands() {
|
|
BaseCommand command = new BaseCommand(this, roundService, playerService, round, statService, tabListService);
|
|
}
|
|
|
|
private void registerEvents() {
|
|
PluginManager pluginManager = getServer().getPluginManager();
|
|
pluginManager.registerEvents(new PlayerDisconnectListener(playerService), this);
|
|
pluginManager.registerEvents(new PlayerJoinListener(playerService, tabListService), this);
|
|
pluginManager.registerEvents(new PlayerDamageListener(roundService, playerService, statService), this);
|
|
pluginManager.registerEvents(new ChestListener(roundService, lootService), this);
|
|
pluginManager.registerEvents(new ItemSpawnListener(roundService), this);
|
|
pluginManager.registerEvents(new CommandListener(), this);
|
|
}
|
|
|
|
public void reloadConfigs() {
|
|
Config.reload();
|
|
Messages.reload();
|
|
LootItems.reload();
|
|
}
|
|
|
|
private void registerSchedulers() {
|
|
|
|
}
|
|
}
|