HungerGames/src/main/java/com/alttd/hunger_games/Main.java

77 lines
2.8 KiB
Java
Raw Normal View History

2026-05-23 21:06:30 +00:00
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;
2026-05-23 21:06:30 +00:00
import com.alttd.hunger_games.config.Messages;
import com.alttd.hunger_games.event_listeners.ChestListener;
import com.alttd.hunger_games.event_listeners.PlayerDamageListener;
import com.alttd.hunger_games.event_listeners.PlayerDisconnectListener;
import com.alttd.hunger_games.event_listeners.PlayerJoinListener;
import com.alttd.hunger_games.services.*;
2026-05-23 21:06:30 +00:00
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;
2026-05-23 21:06:30 +00:00
@Override
public void onEnable() {
log.info("Starting HungerGames");
reloadConfigs();
registerServices();
2026-05-23 21:06:30 +00:00
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);
playerService = PlayerService.createSingletonInstance(round, roundService, playerTeleporterService);
bossBarService = BossBarService.createSingletonInstance(round, roundService);
round.setBossBarService(bossBarService);
roundService.setBossBarService(bossBarService);
}
2026-05-23 21:06:30 +00:00
@Override
public void onDisable() {
log.info("Disabling HungerGames");
}
private void registerCommands() {
BaseCommand command = new BaseCommand(this, roundService, playerService, round, statService);
2026-05-23 21:06:30 +00:00
}
private void registerEvents() {
PluginManager pluginManager = getServer().getPluginManager();
pluginManager.registerEvents(new PlayerDisconnectListener(playerService), this);
pluginManager.registerEvents(new PlayerJoinListener(playerService), this);
pluginManager.registerEvents(new PlayerDamageListener(roundService, playerService, statService), this);
pluginManager.registerEvents(new ChestListener(roundService, lootService), this);
2026-05-23 21:06:30 +00:00
}
public void reloadConfigs() {
Config.reload();
Messages.reload();
LootItems.reload();
2026-05-23 21:06:30 +00:00
}
private void registerSchedulers() {
}
}