X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fcore%2FCore.java;h=ac9ac4d4e90fc680f6bec5166c4d5d689a938336;hb=1947e1e9be56833bed4eb9c2efe1f003566eb284;hp=eb0036c92d9c904fe45ea5aaf3300617b42b7faf;hpb=f724f1d4c327876f6a296a976b58e413c1eaaed6;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/xdcc/core/Core.java b/src/main/java/net/pterodactylus/xdcc/core/Core.java index eb0036c..ac9ac4d 100644 --- a/src/main/java/net/pterodactylus/xdcc/core/Core.java +++ b/src/main/java/net/pterodactylus/xdcc/core/Core.java @@ -17,6 +17,7 @@ package net.pterodactylus.xdcc.core; +import static java.lang.String.format; import static net.pterodactylus.irc.util.MessageCleaner.getDefaultInstance; import static net.pterodactylus.xdcc.data.Channel.TO_NETWORK; import static net.pterodactylus.xdcc.data.Download.FILTER_RUNNING; @@ -40,6 +41,7 @@ import net.pterodactylus.irc.DccReceiver; import net.pterodactylus.irc.event.ChannelJoined; import net.pterodactylus.irc.event.ChannelLeft; import net.pterodactylus.irc.event.ChannelMessageReceived; +import net.pterodactylus.irc.event.ChannelNotJoined; import net.pterodactylus.irc.event.ClientQuit; import net.pterodactylus.irc.event.ConnectionClosed; import net.pterodactylus.irc.event.ConnectionEstablished; @@ -48,6 +50,7 @@ import net.pterodactylus.irc.event.DccAcceptReceived; import net.pterodactylus.irc.event.DccDownloadFailed; import net.pterodactylus.irc.event.DccDownloadFinished; import net.pterodactylus.irc.event.DccSendReceived; +import net.pterodactylus.irc.event.KickedFromChannel; import net.pterodactylus.irc.event.NicknameChanged; import net.pterodactylus.irc.event.PrivateMessageReceived; import net.pterodactylus.irc.event.PrivateNoticeReceived; @@ -535,6 +538,18 @@ public class Core extends AbstractExecutionThreadService { } } + @Subscribe + public void channelNotJoined(ChannelNotJoined channelNotJoined) { + Optional network = getNetwork(channelNotJoined.connection()); + if (!network.isPresent()) { + return; + } + + eventBus.post(new GenericMessage( + format("Could not join %s/%s: %s", channelNotJoined.channel(), + network.get(), channelNotJoined.reason()))); + } + /** * Removes bots that leave a channel, or channels when it’s us that’s leaving. * @@ -575,6 +590,28 @@ public class Core extends AbstractExecutionThreadService { networkBots.remove(network.get(), channelLeft.client().nick().get()); } + @Subscribe + public void kickedFromChannel(KickedFromChannel kickedFromChannel) { + Optional network = getNetwork(kickedFromChannel.connection()); + if (!network.isPresent()) { + return; + } + + /* have we been kicked? */ + if (nicknameMatchesConnection(kickedFromChannel.connection(), kickedFromChannel.kickee())) { + eventBus.post(new GenericMessage(format( + "Kicked from %s/%s by %s: %s", + kickedFromChannel.channel(), network.get(), + kickedFromChannel.kicker(), + kickedFromChannel.reason().or("") + ))); + } + } + + private boolean nicknameMatchesConnection(Connection connection, String nickname) { + return connection.nickname().equalsIgnoreCase(nickname); + } + /** * Removes a client (which may be a bot) from the table of known bots. *