implemented logging PART messages (leaving channel)

pull/6/head
Vyacheslav N. Boyko 2018-03-29 22:48:09 +03:00
parent bbc1223600
commit 58ed9cb297
3 changed files with 42 additions and 26 deletions

View File

@ -18,7 +18,7 @@
<properties>
<bot.version>2.0.1</bot.version>
<bot.version>2.0.2</bot.version>
<java.version>1.8</java.version>

View File

@ -93,11 +93,12 @@ public class AdminListener extends ImprovedListenerAdapter {
event.getBot().sendRaw().rawLine(args[1]); event.respondPrivateMessage("done"); break;
case "set" :
try {
args = commands[1].split(" ", 4); // set, server, channel, mode/hello-message
changeSettings(JircBot.extractServer(args[1]), args[2], args[0], args[3]);
args = commands[1].split(" ", 4); // set, channel, mode/hello-message
changeSettings(JircBot.extractServer(event.getBot().getServerHostname()), args[1], args[0], args[2]); //server, channel, set, mode
event.respondPrivateMessage("done");
} catch (Exception e) {
event.respondPrivateMessage(e.getMessage());
event.respondPrivateMessage(e.toString());
logger.error("ERROR", e);
}
break;
case "op" :

View File

@ -40,41 +40,56 @@ public class LoggerListener extends ImprovedListenerAdapter {
return channelSettingsService.getChannelSettings(serverName, channelName).getLoggingEnabled();
}
// @Override
// public void onEvent(Event event) throws Exception {
//
// int a = 0;
//
// if (event instanceof OutputEvent) {
// this.onOutput((OutputEvent) event);
// }
//
// }
@Override
public void onEvent(Event event) throws Exception {
super.onEvent(event);
}
@Override
public void onJoin(JoinEvent event) throws Exception {
if (!isEnabled(event)) return;
if (!onlineUsers.containsKey(event.getChannel().getName())) {
onlineUsers.put(event.getChannel().getName(), new HashSet<>());
synchronized (onlineUsers) {
if (!onlineUsers.containsKey(event.getChannel().getName())) {
onlineUsers.put(event.getChannel().getName(), new HashSet<>());
}
Set<String> users = onlineUsers.get(event.getChannel().getName());
event.getChannel().getUsers().forEach(user -> {
if (!users.contains(user.getNick().toLowerCase())) {
users.add(user.getNick().toLowerCase());
}
});
}
Set<String> users = onlineUsers.get(event.getChannel().getName());
event.getChannel().getUsers().forEach(user -> {
users.add(user.getNick().toLowerCase());
});
log(event.getBot().getServerHostname(), event.getChannel().getName(), "User joined: "+event.getUser().getNick());
}
@Override
public void onPart(PartEvent event) throws Exception {
if (!isEnabled(event)) return;
log(event.getBot().getServerHostname(), event.getChannel().getName(), "User " + event.getUser().getNick() + " quit (" + event.getReason() + ")");
synchronized (onlineUsers) {
for (String channelName : onlineUsers.keySet()) {
Set<String> users = onlineUsers.get(channelName);
if (users.contains(event.getUser().getNick().toLowerCase())) {
users.remove(event.getUser().getNick().toLowerCase());
}
}
}
}
@Override
public void onQuit(QuitEvent event) throws Exception {
List<String> channels = new ArrayList<>();
for (String channelName : onlineUsers.keySet()) {
Set<String> users = onlineUsers.get(channelName);
if (users.contains(event.getUser().getNick().toLowerCase())) {
if (isEnabled(JircBot.extractServer(event.getBot().getServerHostname()), channelName)) {
log(event.getBot().getServerHostname(), channelName, "User " + event.getUser().getNick() + " quit (" + event.getReason() + ")");
users.remove(event.getUser().getNick().toLowerCase());
synchronized (onlineUsers) {
for (String channelName : onlineUsers.keySet()) {
Set<String> users = onlineUsers.get(channelName);
if (users.contains(event.getUser().getNick().toLowerCase())) {
if (isEnabled(JircBot.extractServer(event.getBot().getServerHostname()), channelName)) {
log(event.getBot().getServerHostname(), channelName, "User " + event.getUser().getNick() + " quit (" + event.getReason() + ")");
users.remove(event.getUser().getNick().toLowerCase());
}
}
}
}