Skip to content

Commit c8c1fd3

Browse files
committed
Fix ChannelJoinEvent lacking information it could have
1 parent 22c3ea5 commit c8c1fd3

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultJoinListener.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.kitteh.irc.client.library.feature.filter.CommandFilter;
3535

3636
import java.util.HashSet;
37+
import java.util.Optional;
3738

3839
/**
3940
* Default JOIN listener, producing events using default classes.
@@ -62,6 +63,16 @@ public void join(ClientReceiveCommandEvent event) {
6263
Channel channel = this.getTracker().getTrackedChannel(channelName).get();
6364
User user = (User) event.getActor();
6465
this.getTracker().trackChannelUser(channelName, user, new HashSet<>());
66+
if (event.getParameters().size() > 2) {
67+
if (!"*".equals(event.getParameters().get(1))) {
68+
this.getTracker().setUserAccount(user.getNick(), event.getParameters().get(1));
69+
}
70+
this.getTracker().setUserRealName(user.getNick(), event.getParameters().get(2));
71+
Optional<User> u = this.getTracker().getTrackedUser(user.getNick());
72+
if (u.isPresent()) { // Just in case something goes funny, let's not murder the event and instead just sacrifice some info
73+
user = u.get();
74+
}
75+
}
6576
ChannelJoinEvent joinEvent = null;
6677
if (user.getNick().equals(this.getClient().getNick())) {
6778
if (this.getClient().getActorTracker().shouldQueryChannelInformation()) {
@@ -72,12 +83,6 @@ public void join(ClientReceiveCommandEvent event) {
7283
joinEvent = new RequestedChannelJoinCompleteEvent(this.getClient(), event.getSource(), channel, user);
7384
}
7485
}
75-
if (event.getParameters().size() > 2) {
76-
if (!"*".equals(event.getParameters().get(1))) {
77-
this.getTracker().setUserAccount(user.getNick(), event.getParameters().get(1));
78-
}
79-
this.getTracker().setUserRealName(user.getNick(), event.getParameters().get(2));
80-
}
8186
if (joinEvent == null) {
8287
joinEvent = new ChannelJoinEvent(this.getClient(), event.getSource(), channel, user);
8388
}

0 commit comments

Comments
 (0)