// Copyright (c) 2015, Christopher "BlayTheNinth" Baker
package net.blay09.mods.eirairc;
import net.blay09.mods.eirairc.api.config.IConfigManager;
import net.blay09.mods.eirairc.api.event.IRCChannelMessageEvent;
import net.blay09.mods.eirairc.api.irc.IRCConnection;
import net.blay09.mods.eirairc.config.LocalConfig;
import net.blay09.mods.eirairc.config.ServerConfig;
import net.blay09.mods.eirairc.config.SharedGlobalConfig;
import net.blay09.mods.eirairc.net.NetworkHandler;
import net.blay09.mods.eirairc.net.message.MessageNotification;
import net.blay09.mods.eirairc.util.NotificationType;
import net.blay09.mods.eirairc.util.Utils;
import net.minecraft.command.ICommandSender;
import net.minecraft.crash.CrashReport;
import net.minecraft.event.ClickEvent;
import net.minecraft.event.HoverEvent;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ReportedException;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class CommonProxy {
public void init() {
MinecraftForge.EVENT_BUS.register(this);
}
public void postInit() {
}
public void publishNotification(NotificationType type, String text) {
NetworkHandler.instance.sendToAll(new MessageNotification(type, text));
}
public String getUsername() {
return null;
}
public void loadConfig(File configDir, boolean reloadFile) {
SharedGlobalConfig.load(configDir, reloadFile);
LocalConfig.load(configDir, reloadFile);
}
public void handleRedirect(ServerConfig serverConfig) {
}
public boolean handleConfigCommand(ICommandSender sender, String key, String value) {
return SharedGlobalConfig.handleConfigCommand(sender, key, value);
}
public String handleConfigCommand(ICommandSender sender, String key) {
return SharedGlobalConfig.handleConfigCommand(sender, key);
}
public void addConfigOptionsToList(List<String> list, String option, boolean autoCompleteOption) {
SharedGlobalConfig.addOptionsToList(list, option, autoCompleteOption);
}
public boolean checkClientBridge(IRCChannelMessageEvent event) {
return false;
}
public void saveConfig() {
if (SharedGlobalConfig.thisConfig.hasChanged()) {
SharedGlobalConfig.thisConfig.save();
}
if (LocalConfig.thisConfig.hasChanged()) {
LocalConfig.thisConfig.save();
}
}
public void handleException(IRCConnection connection, Exception e) {
EiraIRC.logger.error("Encountered an unexpected exception", e);
CrashReport report = MinecraftServer.getServer().addServerInfoToCrashReport(new CrashReport("Exception in IRC Connection " + connection.getHost(), e));
File file1 = new File(new File(MinecraftServer.getServer().getDataDirectory(), "crash-reports"), "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-server.txt");
if (report.saveToFile(file1)) {
EiraIRC.logger.error("This crash report has been saved to: " + file1.getAbsolutePath());
} else {
EiraIRC.logger.error("We were unable to save this crash report to disk.");
}
MinecraftServer.getServer().stopServer();
}
@SubscribeEvent
public void onTick(TickEvent.ServerTickEvent event) {
ConnectionManager.tickConnections();
}
public IConfigManager getClientGlobalConfig() {
return null;
}
public void addScheduledTask(Runnable runnable) {
MinecraftServer.getServer().addScheduledTask(runnable);
}
}