Chat/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java

118 lines
3.9 KiB
Java
Raw Normal View History

2021-05-13 12:11:29 +00:00
package com.alttd.chat;
2021-07-27 16:46:58 +00:00
import com.alttd.chat.commands.*;
import com.alttd.chat.config.Config;
2021-07-30 01:16:41 +00:00
import com.alttd.chat.config.ServerConfig;
import com.alttd.chat.database.DatabaseConnection;
2021-05-13 12:11:29 +00:00
import com.alttd.chat.handler.ChatHandler;
2021-06-13 11:53:49 +00:00
import com.alttd.chat.listeners.ChatListener;
2021-05-13 12:11:29 +00:00
import com.alttd.chat.listeners.PlayerListener;
import com.alttd.chat.listeners.PluginMessage;
import com.alttd.chat.objects.channels.Channel;
import com.alttd.chat.objects.channels.CustomChannel;
2021-05-15 11:52:02 +00:00
import com.alttd.chat.util.ALogger;
2021-08-14 17:55:32 +00:00
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
2021-07-30 01:16:41 +00:00
import org.bukkit.Bukkit;
2021-05-13 12:11:29 +00:00
import org.bukkit.command.CommandExecutor;
2021-08-04 13:46:45 +00:00
import org.bukkit.command.PluginCommand;
2021-05-13 12:11:29 +00:00
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
2021-08-04 13:46:45 +00:00
import java.util.List;
2021-05-13 12:11:29 +00:00
public class ChatPlugin extends JavaPlugin {
private static ChatPlugin instance;
private ChatAPI chatAPI;
private ChatHandler chatHandler;
private String messageChannel;
2021-07-30 01:16:41 +00:00
private ServerConfig serverConfig;
2021-05-13 12:11:29 +00:00
@Override
public void onEnable() {
instance = this;
2021-06-13 11:53:49 +00:00
ALogger.init(getSLF4JLogger());
2021-05-13 12:11:29 +00:00
chatAPI = new ChatImplementation();
chatHandler = new ChatHandler();
DatabaseConnection.initialize();
2021-07-30 01:16:41 +00:00
serverConfig = new ServerConfig(Bukkit.getServerName());
2021-06-13 11:53:49 +00:00
registerListener(new PlayerListener(), new ChatListener());
2021-07-30 01:16:41 +00:00
if(serverConfig.GLOBALCHAT) {
registerCommand("globalchat", new GlobalChat());
registerCommand("toggleglobalchat", new ToggleGlobalChat());
}
2021-06-23 19:48:46 +00:00
registerCommand("message", new Message());
registerCommand("reply", new Reply());
2021-07-27 16:46:58 +00:00
registerCommand("ignore", new Ignore());
registerCommand("unignore", new Unignore());
2021-07-30 21:22:38 +00:00
registerCommand("muteserver", new MuteServer());
2021-08-01 19:00:57 +00:00
registerCommand("spy", new Spy());
registerCommand("chatparty", new ChatParty());
registerCommand("pc", new PartyChat());
2021-08-05 09:40:42 +00:00
for (Channel channel : Channel.getChannels()) {
if (!(channel instanceof CustomChannel customChannel)) continue;
this.getServer().getCommandMap().register(channel.getChannelName().toLowerCase(), new ChatChannel(customChannel));
2021-08-05 09:40:42 +00:00
}
messageChannel = Config.MESSAGECHANNEL;
getServer().getMessenger().registerOutgoingPluginChannel(this, messageChannel);
getServer().getMessenger().registerIncomingPluginChannel(this, messageChannel, new PluginMessage());
2021-05-13 12:11:29 +00:00
}
@Override
public void onDisable() {
instance = null;
}
public void registerListener(Listener... listeners) {
for (Listener listener : listeners) {
getServer().getPluginManager().registerEvents(listener, this);
}
}
2021-08-04 13:46:45 +00:00
public void registerCommand(String commandName, CommandExecutor commandExecutor) {
getCommand(commandName).setExecutor(commandExecutor);
}
public void registerCommand(String commandName, CommandExecutor commandExecutor, List<String> aliases) {
PluginCommand command = getCommand(commandName);
command.setAliases(aliases);
command.setExecutor(commandExecutor);
2021-05-13 12:11:29 +00:00
}
public static ChatPlugin getInstance() {
return instance;
}
public ChatAPI getChatAPI() {
return chatAPI;
}
public ChatHandler getChatHandler() {
return chatHandler;
}
2021-07-30 01:16:41 +00:00
public boolean serverGlobalChatEnabled() {
return serverConfig.GLOBALCHAT;
}
2021-07-30 21:22:38 +00:00
public boolean serverMuted() {
return serverConfig.MUTED;
}
public void toggleServerMuted() {
serverConfig.MUTED = !serverConfig.MUTED;
}
2021-08-14 17:55:32 +00:00
public void ReloadConfig() {
chatAPI.ReloadConfig();
chatAPI.ReloadChatFilters();
serverConfig = new ServerConfig(Bukkit.getServerName());
Bukkit.broadcast("Reloaded ChatPlugin Config.", "command.chat.reloadchat");
2021-08-14 17:55:32 +00:00
ALogger.info("Reloaded ChatPlugin config.");
}
2021-05-13 12:11:29 +00:00
}