3434import org .kitteh .irc .client .library .feature .filter .CommandFilter ;
3535
3636import 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