package heufybot.core.events;
import heufybot.core.HeufyBot;
import heufybot.core.IRCChannel;
import heufybot.core.IRCUser;
import heufybot.core.Logger;
import heufybot.core.events.types.*;
import heufybot.utils.StringUtils;
import heufybot.utils.WhoisBuilder;
import java.util.Date;
public class LoggingInterface extends EventListenerAdapter
{
private HeufyBot bot;
public LoggingInterface(HeufyBot bot)
{
this.bot = bot;
}
@Override
public void onAction(ActionEvent event)
{
Logger.log("* " + event.getUser().getNickname() + " " + event.getMessage(), event
.getChannel().getName(), this.bot.getServer(event.getServerName()).getServerInfo()
.getNetwork());
}
@Override
public void onBotMessage(BotMessageEvent event)
{
IRCUser user = event.getUser();
IRCChannel channel = this.bot.getServer(event.getServerName())
.getChannel(event.getTarget());
if (channel == null)
{
if (event.getTarget().equalsIgnoreCase("nickserv")
|| event.getTarget().equalsIgnoreCase("chanserv"))
{
return;
}
String sourceNick = user.getNickname();
Logger.log("<" + sourceNick + "> " + event.getMessage(), event.getTarget(), this.bot
.getServer(event.getServerName()).getServerInfo().getNetwork());
return;
}
String modes = channel.getModesOnUser(user);
if (!modes.equals(""))
{
Logger.log(
"<"
+ this.bot
.getServer(event.getServerName())
.getServerInfo()
.getUserPrefixes()
.get(this.bot.getServer(event.getServerName())
.getAccessLevelOnUser(channel, user))
+ user.getNickname() + "> " + event.getMessage(), channel.getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
else
{
Logger.log("<" + user.getNickname() + "> " + event.getMessage(), channel.getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
}
@Override
public void onChannelNotice(ChannelNoticeEvent event)
{
Logger.log("[Notice] --" + event.getSource() + "-- [" + event.getChannel().getName() + "] "
+ event.getMessage(), event.getChannel().getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
@Override
public void onCTCPRequest(CTCPRequestEvent event)
{
Logger.log("[" + event.getUser().getNickname() + " " + event.getType() + "]");
}
@Override
public void onError(ErrorEvent event)
{
Logger.log(event.getMessage());
}
@Override
public void onInvite(InviteEvent event)
{
IRCUser inviter = event.getInviter();
Logger.log("-- " + inviter.getNickname() + " (" + inviter.getLogin() + "@"
+ inviter.getHostname() + ") invites " + event.getInvitee() + " to join "
+ event.getChannel());
}
@Override
public void onJoin(JoinEvent event)
{
IRCUser user = event.getUser();
Logger.log(">> " + user.getNickname() + " (" + user.getLogin() + "@" + user.getHostname()
+ ") has joined " + event.getChannel().getName(), event.getChannel().getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
@Override
public void onKick(KickEvent event)
{
Logger.log("-- " + event.getRecipient().getNickname() + " was kicked from "
+ event.getChannel().getName() + " by " + event.getKicker().getNickname() + " ("
+ event.getMessage() + ")", event.getChannel().getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
@Override
public void onMessage(MessageEvent event)
{
IRCUser user = event.getUser();
IRCChannel channel = event.getChannel();
String modes = channel.getModesOnUser(user);
if (!modes.equals(""))
{
Logger.log(
"<"
+ this.bot
.getServer(event.getServerName())
.getServerInfo()
.getUserPrefixes()
.get(this.bot.getServer(event.getServerName())
.getAccessLevelOnUser(channel, user))
+ user.getNickname() + "> " + event.getMessage(), channel.getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
else
{
Logger.log("<" + user.getNickname() + "> " + event.getMessage(), channel.getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
}
@Override
public void onModeChange(ModeEvent event)
{
if (event.getChannel() == null)
{
Logger.log("-- " + event.getSetter() + " sets mode: " + event.getMode());
}
else
{
Logger.log("-- " + event.getSetter() + " sets mode: " + event.getMode(), event
.getChannel().getName(), this.bot.getServer(event.getServerName())
.getServerInfo().getNetwork());
}
}
@Override
public void onNickChange(NickChangeEvent event)
{
for (IRCChannel channel : this.bot.getServer(event.getServerName()).getChannels())
{
IRCUser user = channel.getUser(event.getUser().getNickname());
if (user != null)
{
Logger.log("-- " + event.getOldNick() + " is now known as " + event.getNewNick(),
channel.getName(), this.bot.getServer(event.getServerName())
.getServerInfo().getNetwork());
}
}
}
@Override
public void onNotice(NoticeEvent event)
{
Logger.log("[Notice] --" + event.getSource() + "-- " + event.getMessage());
}
@Override
public void onPart(PartEvent event)
{
IRCUser user = event.getUser();
String channel = event.getChannel().getName();
if (event.getMessage().equals(""))
{
Logger.log(
"<< " + user.getNickname() + " (" + user.getLogin() + "@" + user.getHostname()
+ ") has left " + channel, channel,
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
else
{
Logger.log(
"<< " + user.getNickname() + " (" + user.getLogin() + "@" + user.getHostname()
+ ") has left " + channel + " (" + event.getMessage() + ")", channel,
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
}
@Override
public void onPMAction(PMActionEvent event)
{
if (this.bot.getGlobalConfig().getSettingWithDefault("logPMs", false))
{
;
}
{
Logger.log("* " + event.getUser().getNickname() + " " + event.getMessage(), event
.getUser().getNickname(), this.bot.getServer(event.getServerName())
.getServerInfo().getNetwork());
}
}
@Override
public void onPMMessage(PMMessageEvent event)
{
if (this.bot.getGlobalConfig().getSettingWithDefault("logPMs", false))
{
String sourceNick = event.getUser().getNickname();
Logger.log("<" + sourceNick + "> " + event.getMessage(), sourceNick, this.bot
.getServer(event.getServerName()).getServerInfo().getNetwork());
}
}
@Override
public void onQuit(QuitEvent event)
{
for (IRCChannel channel : this.bot.getServer(event.getServerName()).getChannels())
{
IRCUser user = channel.getUser(event.getUser().getNickname());
if (user != null)
{
Logger.log(
"<< " + user.getNickname() + " (" + user.getLogin() + "@"
+ user.getHostname() + ") has quit IRC (" + event.getMessage()
+ ")", channel.getName(), this.bot.getServer(event.getServerName())
.getServerInfo().getNetwork());
}
}
}
@Override
public void onServerChannelResponse(ServerResponseChannelEvent event)
{
Logger.log(event.getLine(), event.getChannel().getName(),
this.bot.getServer(event.getServerName()).getServerInfo().getNetwork());
}
@Override
public void onServerResponse(ServerResponseEvent event)
{
Logger.log(event.getLine());
}
@Override
public void onTopicChange(TopicEvent event)
{
Logger.log("-- " + event.getSource() + " changes topic to \'" + event.getMessage() + "\'",
event.getChannel().getName(), this.bot.getServer(event.getServerName())
.getServerInfo().getNetwork());
}
@Override
public void onWhois(WhoisEvent event)
{
WhoisBuilder builder = event.getWhoisBuilder();
Logger.log("-- Start of /WHOIS");
Logger.log(builder.getNickname() + " is " + builder.getNickname() + "!"
+ builder.getLogin() + "@" + builder.getHostname());
Logger.log(builder.getNickname() + "'s real name is " + builder.getRealname());
Logger.log(builder.getNickname() + "'s channels: "
+ StringUtils.join(builder.getChannels(), ", "));
Logger.log(builder.getNickname() + "'s server is " + builder.getServer() + " - "
+ builder.getServerInfo());
if (builder.getOperPrivs() != null)
{
Logger.log(builder.getNickname() + " " + builder.getOperPrivs());
}
Logger.log(builder.getNickname() + "'s idle time is " + builder.getIdleSeconds()
+ " seconds");
if (builder.getSignOnTime() != -1)
{
Logger.log(builder.getNickname() + "'s sign on time is "
+ new Date(builder.getSignOnTime() * 1000));
}
Logger.log("-- End of /WHOIS");
}
}