109 lines
5.2 KiB
Java
Executable File
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;
|
|
}
|
|
}
|