refactor: Remove emoji system and chat filters, implement SOLID architecture
This commit is contained in:
parent
16a5e09118
commit
74482851aa
72 changed files with 2654 additions and 1287 deletions
|
|
@ -1,110 +1,99 @@
|
|||
package com.loki.lochat;
|
||||
|
||||
import com.loki.lochat.api.service.IgnoreService;
|
||||
import com.loki.lochat.api.service.MuteService;
|
||||
import com.loki.lochat.commands.*;
|
||||
import com.loki.lochat.config.ConfigManager;
|
||||
import com.loki.lochat.config.MessageConfig;
|
||||
import com.loki.lochat.core.registry.ServiceRegistry;
|
||||
import com.loki.lochat.gradient.GradientModule;
|
||||
import com.loki.lochat.integrations.LibertyBansHook;
|
||||
import com.loki.lochat.integrations.PlaceholderAPIHook;
|
||||
import com.loki.lochat.listeners.ChatListener;
|
||||
import com.loki.lochat.managers.*;
|
||||
import com.loki.lochat.listener.ChatEventListener;
|
||||
import com.loki.lochat.listener.PlayerEventListener;
|
||||
import com.loki.lochat.managers.AutoMessageManager;
|
||||
import com.loki.lochat.managers.CustomCommandManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
/**
|
||||
* Главный класс плагина LoChat
|
||||
* Использует SOLID архитектуру с Dependency Injection через ServiceRegistry
|
||||
*/
|
||||
public final class LoChat extends JavaPlugin {
|
||||
|
||||
private static LoChat instance;
|
||||
|
||||
private ServiceRegistry serviceRegistry;
|
||||
private ConfigManager configManager;
|
||||
private MessageConfig messageConfig;
|
||||
private ChatManager chatManager;
|
||||
private PMManager pmManager;
|
||||
private IgnoreManager ignoreManager;
|
||||
private AutoMessageManager autoMessageManager;
|
||||
private AntiSpamManager antiSpamManager;
|
||||
private CooldownManager cooldownManager;
|
||||
private MentionManager mentionManager;
|
||||
private SpyManager spyManager;
|
||||
private EmojiManager emojiManager;
|
||||
private CustomCommandManager customCommandManager;
|
||||
private GradientModule gradientModule;
|
||||
private LibertyBansHook libertyBansHook;
|
||||
private MuteManager muteManager;
|
||||
private HeadEmojiManager headEmojiManager;
|
||||
private com.loki.lochat.integrations.SkinsRestorerHook skinsRestorerHook;
|
||||
private AutoMessageManager autoMessageManager;
|
||||
private CustomCommandManager customCommandManager;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
instance = this;
|
||||
getLogger().info("Загрузка LoChat v" + getDescription().getVersion() + " для Paper/Folia " + Bukkit.getMinecraftVersion() + "...");
|
||||
|
||||
// Инициализация конфигов
|
||||
// Конфиги
|
||||
configManager = new ConfigManager(this);
|
||||
messageConfig = new MessageConfig(this);
|
||||
|
||||
// Инициализация менеджеров
|
||||
emojiManager = new EmojiManager(this);
|
||||
ignoreManager = new IgnoreManager(this);
|
||||
pmManager = new PMManager();
|
||||
antiSpamManager = new AntiSpamManager(this);
|
||||
cooldownManager = new CooldownManager();
|
||||
mentionManager = new MentionManager(this);
|
||||
spyManager = new SpyManager(this);
|
||||
// Service Registry (SOLID DI) - с зависимостями
|
||||
serviceRegistry = new ServiceRegistry(this, configManager, messageConfig);
|
||||
getLogger().info("ServiceRegistry инициализирован (SOLID DI)");
|
||||
|
||||
// Менеджеры
|
||||
customCommandManager = new CustomCommandManager(this);
|
||||
muteManager = new MuteManager(this);
|
||||
chatManager = new ChatManager(this);
|
||||
autoMessageManager = new AutoMessageManager(this);
|
||||
|
||||
// Инициализация интеграций
|
||||
skinsRestorerHook = new com.loki.lochat.integrations.SkinsRestorerHook(this);
|
||||
headEmojiManager = new com.loki.lochat.managers.HeadEmojiManager(this);
|
||||
// Интеграции
|
||||
initIntegrations();
|
||||
|
||||
// Инициализация модуля градиентов (интегрированный LoPreff)
|
||||
gradientModule = new GradientModule(this);
|
||||
if (gradientModule.init()) {
|
||||
getLogger().info("Gradient модуль (LoPreff) загружен!");
|
||||
}
|
||||
|
||||
// Инициализация LibertyBans интеграции
|
||||
libertyBansHook = new LibertyBansHook(this);
|
||||
|
||||
// Регистрация команд
|
||||
// Команды и слушатели
|
||||
registerCommands();
|
||||
registerListeners();
|
||||
|
||||
// Регистрация листенеров
|
||||
getServer().getPluginManager().registerEvents(new ChatListener(this), this);
|
||||
|
||||
// Запуск автосообщений
|
||||
// Автосообщения
|
||||
autoMessageManager.start();
|
||||
|
||||
// PlaceholderAPI
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
new PlaceholderAPIHook(this).register();
|
||||
getLogger().info("PlaceholderAPI подключен!");
|
||||
}
|
||||
|
||||
getLogger().info("LoChat успешно запущен!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
if (autoMessageManager != null) {
|
||||
autoMessageManager.stop();
|
||||
}
|
||||
if (ignoreManager != null) {
|
||||
ignoreManager.save();
|
||||
}
|
||||
if (gradientModule != null) {
|
||||
gradientModule.shutdown();
|
||||
}
|
||||
if (muteManager != null) {
|
||||
muteManager.save();
|
||||
}
|
||||
if (autoMessageManager != null) autoMessageManager.stop();
|
||||
|
||||
// Сохранение данных через сервисы
|
||||
IgnoreService ignoreService = serviceRegistry.get(IgnoreService.class);
|
||||
if (ignoreService != null) ignoreService.save();
|
||||
|
||||
MuteService muteService = serviceRegistry.get(MuteService.class);
|
||||
if (muteService != null) muteService.save();
|
||||
|
||||
if (gradientModule != null) gradientModule.shutdown();
|
||||
getLogger().info("LoChat отключен!");
|
||||
}
|
||||
|
||||
private void initIntegrations() {
|
||||
// Gradient модуль
|
||||
gradientModule = new GradientModule(this);
|
||||
if (gradientModule.init()) {
|
||||
getLogger().info("Gradient модуль (LoPreff) загружен!");
|
||||
}
|
||||
|
||||
// LibertyBans
|
||||
new LibertyBansHook(this);
|
||||
|
||||
// PlaceholderAPI
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
new PlaceholderAPIHook(this).register();
|
||||
getLogger().info("PlaceholderAPI подключен!");
|
||||
}
|
||||
}
|
||||
|
||||
private void registerCommands() {
|
||||
getCommand("g").setExecutor(new GlobalChatCommand(this));
|
||||
getCommand("globalchat").setExecutor(new GlobalChatCommand(this));
|
||||
getCommand("l").setExecutor(new LocalChatCommand(this));
|
||||
getCommand("msg").setExecutor(new MsgCommand(this));
|
||||
getCommand("reply").setExecutor(new ReplyCommand(this));
|
||||
|
|
@ -114,123 +103,52 @@ public final class LoChat extends JavaPlugin {
|
|||
getCommand("chatspy").setExecutor(new ChatSpyCommand(this));
|
||||
getCommand("clearchat").setExecutor(new ClearChatCommand(this));
|
||||
|
||||
LoChatCommand loChatCommand = new LoChatCommand(this);
|
||||
getCommand("lochat").setExecutor(loChatCommand);
|
||||
getCommand("lochat").setTabCompleter(loChatCommand);
|
||||
LoChatCommand loChatCmd = new LoChatCommand(this);
|
||||
getCommand("lochat").setExecutor(loChatCmd);
|
||||
getCommand("lochat").setTabCompleter(loChatCmd);
|
||||
|
||||
// Команды мутов
|
||||
MuteCommand muteCommand = new MuteCommand(this);
|
||||
getCommand("lmute").setExecutor(muteCommand);
|
||||
getCommand("lmute").setTabCompleter(muteCommand);
|
||||
MuteCommand muteCmd = new MuteCommand(this);
|
||||
getCommand("lmute").setExecutor(muteCmd);
|
||||
getCommand("lmute").setTabCompleter(muteCmd);
|
||||
|
||||
UnmuteCommand unmuteCommand = new UnmuteCommand(this);
|
||||
getCommand("lunmute").setExecutor(unmuteCommand);
|
||||
getCommand("lunmute").setTabCompleter(unmuteCommand);
|
||||
UnmuteCommand unmuteCmd = new UnmuteCommand(this);
|
||||
getCommand("lunmute").setExecutor(unmuteCmd);
|
||||
getCommand("lunmute").setTabCompleter(unmuteCmd);
|
||||
|
||||
getCommand("lmutelist").setExecutor(new MuteListCommand(this));
|
||||
|
||||
MuteHistoryCommand muteHistoryCommand = new MuteHistoryCommand(this);
|
||||
getCommand("lmutehistory").setExecutor(muteHistoryCommand);
|
||||
getCommand("lmutehistory").setTabCompleter(muteHistoryCommand);
|
||||
MuteHistoryCommand historyCmd = new MuteHistoryCommand(this);
|
||||
getCommand("lmutehistory").setExecutor(historyCmd);
|
||||
getCommand("lmutehistory").setTabCompleter(historyCmd);
|
||||
|
||||
MuteBlameCommand muteBlameCommand = new MuteBlameCommand(this);
|
||||
getCommand("lmuteblame").setExecutor(muteBlameCommand);
|
||||
getCommand("lmuteblame").setTabCompleter(muteBlameCommand);
|
||||
MuteBlameCommand blameCmd = new MuteBlameCommand(this);
|
||||
getCommand("lmuteblame").setExecutor(blameCmd);
|
||||
getCommand("lmuteblame").setTabCompleter(blameCmd);
|
||||
|
||||
// Команда настройки очистки чата
|
||||
ClearChatConfigCommand clearChatConfigCommand = new ClearChatConfigCommand(this);
|
||||
getCommand("clearchatconfig").setExecutor(clearChatConfigCommand);
|
||||
getCommand("clearchatconfig").setTabCompleter(clearChatConfigCommand);
|
||||
|
||||
// Внутренняя команда для информации об игроке
|
||||
getCommand("lochat").setExecutor(new PlayerInfoCommand(this));
|
||||
ClearChatConfigCommand clearCfgCmd = new ClearChatConfigCommand(this);
|
||||
getCommand("clearchatconfig").setExecutor(clearCfgCmd);
|
||||
getCommand("clearchatconfig").setTabCompleter(clearCfgCmd);
|
||||
}
|
||||
|
||||
private void registerListeners() {
|
||||
getServer().getPluginManager().registerEvents(new ChatEventListener(this, serviceRegistry), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerEventListener(serviceRegistry), this);
|
||||
getLogger().info("Слушатели зарегистрированы (новая архитектура)");
|
||||
}
|
||||
|
||||
public void reload() {
|
||||
configManager.reload();
|
||||
messageConfig.reload();
|
||||
emojiManager.reload();
|
||||
autoMessageManager.stop();
|
||||
autoMessageManager.start();
|
||||
if (gradientModule != null) {
|
||||
gradientModule.reload();
|
||||
}
|
||||
if (customCommandManager != null) {
|
||||
customCommandManager.reload();
|
||||
}
|
||||
}
|
||||
|
||||
public static LoChat getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public ConfigManager getConfigManager() {
|
||||
return configManager;
|
||||
}
|
||||
|
||||
public MessageConfig getMessageConfig() {
|
||||
return messageConfig;
|
||||
}
|
||||
|
||||
public ChatManager getChatManager() {
|
||||
return chatManager;
|
||||
}
|
||||
|
||||
public PMManager getPmManager() {
|
||||
return pmManager;
|
||||
}
|
||||
|
||||
public IgnoreManager getIgnoreManager() {
|
||||
return ignoreManager;
|
||||
}
|
||||
|
||||
public AutoMessageManager getAutoMessageManager() {
|
||||
return autoMessageManager;
|
||||
}
|
||||
|
||||
|
||||
public AntiSpamManager getAntiSpamManager() {
|
||||
return antiSpamManager;
|
||||
}
|
||||
|
||||
public CooldownManager getCooldownManager() {
|
||||
return cooldownManager;
|
||||
}
|
||||
|
||||
public MentionManager getMentionManager() {
|
||||
return mentionManager;
|
||||
}
|
||||
|
||||
public SpyManager getSpyManager() {
|
||||
return spyManager;
|
||||
}
|
||||
|
||||
public EmojiManager getEmojiManager() {
|
||||
return emojiManager;
|
||||
}
|
||||
|
||||
public GradientModule getGradientModule() {
|
||||
return gradientModule;
|
||||
}
|
||||
|
||||
public CustomCommandManager getCustomCommandManager() {
|
||||
return customCommandManager;
|
||||
}
|
||||
|
||||
public LibertyBansHook getLibertyBansHook() {
|
||||
return libertyBansHook;
|
||||
}
|
||||
|
||||
public MuteManager getMuteManager() {
|
||||
return muteManager;
|
||||
}
|
||||
|
||||
public HeadEmojiManager getHeadEmojiManager() {
|
||||
return headEmojiManager;
|
||||
}
|
||||
|
||||
public com.loki.lochat.integrations.SkinsRestorerHook getSkinsRestorerHook() {
|
||||
return skinsRestorerHook;
|
||||
autoMessageManager.reload();
|
||||
if (gradientModule != null) gradientModule.reload();
|
||||
if (customCommandManager != null) customCommandManager.reload();
|
||||
}
|
||||
|
||||
// Геттеры
|
||||
public static LoChat getInstance() { return instance; }
|
||||
public ServiceRegistry getServiceRegistry() { return serviceRegistry; }
|
||||
public ConfigManager getConfigManager() { return configManager; }
|
||||
public MessageConfig getMessageConfig() { return messageConfig; }
|
||||
public GradientModule getGradientModule() { return gradientModule; }
|
||||
public CustomCommandManager getCustomCommandManager() { return customCommandManager; }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue