- Система кастомных команд с алиасами (custom-commands.yml) - Команда /chatcolor для установки цвета сообщений - Исправлена ошибка с legacy кодами в PM - Настройки объявлений (title, actionbar) - Автообновление конфигов - Отображение префикса над игроком - Многоядерная сборка Gradle - Добавлены алиасы для команд (русские и английские) - Права на использование цветовых кодов
191 lines
6 KiB
Java
191 lines
6 KiB
Java
package com.loki.lochat;
|
|
|
|
import com.loki.lochat.commands.*;
|
|
import com.loki.lochat.config.ConfigManager;
|
|
import com.loki.lochat.config.MessageConfig;
|
|
import com.loki.lochat.gradient.GradientModule;
|
|
import com.loki.lochat.integrations.PlaceholderAPIHook;
|
|
import com.loki.lochat.listeners.ChatListener;
|
|
import com.loki.lochat.managers.*;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
public final class LoChat extends JavaPlugin {
|
|
|
|
private static LoChat instance;
|
|
|
|
private ConfigManager configManager;
|
|
private MessageConfig messageConfig;
|
|
private ChatManager chatManager;
|
|
private PMManager pmManager;
|
|
private IgnoreManager ignoreManager;
|
|
private AutoMessageManager autoMessageManager;
|
|
private FilterManager filterManager;
|
|
private AntiSpamManager antiSpamManager;
|
|
private CooldownManager cooldownManager;
|
|
private MentionManager mentionManager;
|
|
private SpyManager spyManager;
|
|
private EmojiManager emojiManager;
|
|
private ChatColorManager chatColorManager;
|
|
private CustomCommandManager customCommandManager;
|
|
private GradientModule gradientModule;
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
instance = this;
|
|
|
|
// Инициализация конфигов
|
|
configManager = new ConfigManager(this);
|
|
messageConfig = new MessageConfig(this);
|
|
|
|
// Инициализация менеджеров
|
|
emojiManager = new EmojiManager(this);
|
|
ignoreManager = new IgnoreManager(this);
|
|
pmManager = new PMManager();
|
|
filterManager = new FilterManager(this);
|
|
antiSpamManager = new AntiSpamManager(this);
|
|
cooldownManager = new CooldownManager();
|
|
mentionManager = new MentionManager(this);
|
|
spyManager = new SpyManager(this);
|
|
chatColorManager = new ChatColorManager(this);
|
|
customCommandManager = new CustomCommandManager(this);
|
|
chatManager = new ChatManager(this);
|
|
autoMessageManager = new AutoMessageManager(this);
|
|
|
|
// Инициализация модуля градиентов (интегрированный LoPreff)
|
|
gradientModule = new GradientModule(this);
|
|
if (gradientModule.init()) {
|
|
getLogger().info("Gradient модуль (LoPreff) загружен!");
|
|
}
|
|
|
|
// Регистрация команд
|
|
registerCommands();
|
|
|
|
// Регистрация листенеров
|
|
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 (chatColorManager != null) {
|
|
chatColorManager.saveData();
|
|
}
|
|
if (gradientModule != null) {
|
|
gradientModule.shutdown();
|
|
}
|
|
getLogger().info("LoChat отключен!");
|
|
}
|
|
|
|
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));
|
|
getCommand("ignore").setExecutor(new IgnoreCommand(this));
|
|
getCommand("unignore").setExecutor(new UnignoreCommand(this));
|
|
getCommand("announce").setExecutor(new AnnounceCommand(this));
|
|
getCommand("chatspy").setExecutor(new ChatSpyCommand(this));
|
|
getCommand("clearchat").setExecutor(new ClearChatCommand(this));
|
|
getCommand("chatcolor").setExecutor(new ChatColorCommand(this));
|
|
|
|
LoChatCommand loChatCommand = new LoChatCommand(this);
|
|
getCommand("lochat").setExecutor(loChatCommand);
|
|
getCommand("lochat").setTabCompleter(loChatCommand);
|
|
}
|
|
|
|
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 FilterManager getFilterManager() {
|
|
return filterManager;
|
|
}
|
|
|
|
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 ChatColorManager getChatColorManager() {
|
|
return chatColorManager;
|
|
}
|
|
|
|
public CustomCommandManager getCustomCommandManager() {
|
|
return customCommandManager;
|
|
}
|
|
}
|