- is_op = is_voiced = FALSE;
-
- /* Prefixe abschneiden */
- while(( *ptr == '@' ) || ( *ptr == '+' ))
- {
- if( *ptr == '@' ) is_op = TRUE;
- if( *ptr == '+' ) is_voiced = TRUE;
- ptr++;
- }
-
- c = Client_GetFromID( ptr );
- if( c )
- {
- Channel_Join( c, channame );
- chan = Channel_Search( channame );
- assert( chan != NULL );
-
- if( is_op ) Channel_UserModeAdd( chan, c, 'o' );
- if( is_voiced ) Channel_UserModeAdd( chan, c, 'v' );
-
- /* im Channel bekannt machen */
- IRC_WriteStrChannelPrefix( Client, chan, c, FALSE, "JOIN :%s", channame );
-
- /* Channel-User-Modes setzen */
- strcpy( modes, Channel_UserModes( chan, c ));
- if( modes[0] )
- {
- /* Modes im Channel bekannt machen */
- IRC_WriteStrChannelPrefix( Client, chan, Client, FALSE, "MODE %s +%s %s", channame, modes, Client_ID( c ));
- }
- }
- else Log( LOG_ERR, "Got NJOIN for unknown nick \"%s\" for channel \"%s\"!", ptr, channame );
-
- /* naechsten Nick suchen */
- ptr = strtok( NULL, "," );