Files
AdminMode/src/main/java/org/blz/adminmode/AdminMode.java
2026-08-02 22:21:03 +03:00

109 lines
5.2 KiB
Java
Executable File

package org.blz.adminmode;
import org.blz.adminmode.commands.AdminModeCommand;
import org.blz.adminmode.config.ConfigManager;
import org.blz.adminmode.dialog.AdminDialogService;
import org.blz.adminmode.dialog.DialogPreferenceStore;
import org.blz.adminmode.dialog.MenuEmojiPreferenceStore;
import org.blz.adminmode.integrations.CoreProtectIntegration;
import org.blz.adminmode.integrations.LuckPermsIntegration;
import org.blz.adminmode.listeners.AdminModeListener;
import org.blz.adminmode.listeners.GameModeChangeListener;
import org.blz.adminmode.listeners.MobTargetListener;
import org.blz.adminmode.listeners.PlayerDeathListener;
import org.blz.adminmode.listeners.PlayerSessionListener;
import org.blz.adminmode.moderation.ModeratorAccessManager;
import org.blz.adminmode.moderation.ModeManager;
import org.blz.adminmode.moderation.ModeSessionLogger;
import org.blz.adminmode.moderation.ModeratorPreferencesStore;
import org.blz.adminmode.moderation.ModeratorWarningStore;
import org.blz.adminmode.moderation.PlayerFreezeManager;
import org.blz.adminmode.session.SessionStorage;
import org.bukkit.plugin.java.JavaPlugin;
public class AdminMode extends JavaPlugin {
private static AdminMode instance;
private ConfigManager configManager;
private ModeManager modeManager;
private AdminModeCommand adminModeCommand;
private AdminDialogService dialogService;
private org.blz.adminmode.managers.BelzeBoolManager belzeBoolManager;
private ModeratorAccessManager moderatorAccessManager;
private PlayerFreezeManager freezeManager;
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
configManager = new ConfigManager(this);
SessionStorage sessionStorage = new SessionStorage(this);
moderatorAccessManager = new ModeratorAccessManager(this);
ModeratorPreferencesStore preferencesStore = new ModeratorPreferencesStore(this);
ModeratorWarningStore warningStore = new ModeratorWarningStore(this);
LuckPermsIntegration luckPermsIntegration = new LuckPermsIntegration(this, configManager);
CoreProtectIntegration coreProtectIntegration = new CoreProtectIntegration(this, configManager);
ModeSessionLogger sessionLogger = new ModeSessionLogger(this, configManager);
modeManager = new ModeManager(this, configManager, luckPermsIntegration, sessionStorage, sessionLogger, preferencesStore);
adminModeCommand = new AdminModeCommand(configManager, modeManager, coreProtectIntegration, moderatorAccessManager);
DialogPreferenceStore dialogPreferenceStore = new DialogPreferenceStore(this);
MenuEmojiPreferenceStore emojiPreferenceStore = new MenuEmojiPreferenceStore(this);
dialogService = new AdminDialogService(this, configManager, adminModeCommand, dialogPreferenceStore, emojiPreferenceStore, preferencesStore, warningStore);
adminModeCommand.setDialogService(dialogService);
adminModeCommand.setDialogPreferenceStore(dialogPreferenceStore);
getCommand("adminmode").setExecutor(adminModeCommand);
getCommand("adminmode").setTabCompleter(adminModeCommand);
org.blz.adminmode.commands.AdminFixCommand adminFixCommand = new org.blz.adminmode.commands.AdminFixCommand(adminModeCommand);
getCommand("admfix").setExecutor(adminFixCommand);
getCommand("admfix").setTabCompleter(adminFixCommand);
getServer().getPluginManager().registerEvents(new AdminModeListener(adminModeCommand, configManager, modeManager, dialogService),
this);
getServer().getPluginManager().registerEvents(new MobTargetListener(adminModeCommand, configManager), this);
getServer().getPluginManager().registerEvents(new GameModeChangeListener(adminModeCommand, configManager),
this);
getServer().getPluginManager().registerEvents(new PlayerSessionListener(adminModeCommand, modeManager), this);
getServer().getPluginManager().registerEvents(new PlayerDeathListener(modeManager), this);
freezeManager = new PlayerFreezeManager(this);
adminModeCommand.setFreezeManager(freezeManager);
getServer().getPluginManager().registerEvents(freezeManager, this);
for (org.bukkit.entity.Player onlinePlayer : getServer().getOnlinePlayers()) {
if (modeManager.hasSession(onlinePlayer.getUniqueId())) {
getServer().getScheduler().runTaskLater(this, () -> adminModeCommand.resumeMode(onlinePlayer), 1L);
}
}
// Load Pocket Dimension World
new org.blz.adminmode.utils.WorldLoader(this, "pocket_dimension").loadWorld();
// Register Abilities
belzeBoolManager = new org.blz.adminmode.managers.BelzeBoolManager(this);
adminModeCommand.setBelzeBoolManager(belzeBoolManager);
getLogger().info("AdminMode успешно включен!");
}
@Override
public void onDisable() {
getLogger().info("AdminMode отключен!");
}
public static AdminMode getInstance() {
return instance;
}
public ConfigManager getConfigManager() {
return configManager;
}
public ModeManager getModeManager() {
return modeManager;
}
public AdminModeCommand getAdminModeCommand() {
return adminModeCommand;
}
}