Esempio n. 1
0
void irc_send_join(irc_channel_t *ic, irc_user_t *iu)
{
	irc_t *irc = ic->irc;

	if (irc->caps & CAP_EXTENDED_JOIN) {
		irc_write(irc, ":%s!%s@%s JOIN %s * :%s", iu->nick, iu->user, iu->host, ic->name, iu->fullname);
	} else {
		irc_write(irc, ":%s!%s@%s JOIN :%s", iu->nick, iu->user, iu->host, ic->name);
	}

	if (iu == irc->user) {
		if (ic->topic && *ic->topic) {
			irc_send_topic(ic, FALSE);
		}
		irc_send_names(ic);
	}
}
Esempio n. 2
0
static void irc_cmd_topic( irc_t *irc, char **cmd )
{
	irc_channel_t *ic = irc_channel_by_name( irc, cmd[1] );
	const char *new = cmd[2];
	
	if( ic == NULL )
	{
		irc_send_num( irc, 403, "%s :No such channel", cmd[1] );
	}
	else if( new )
	{
		if( ic->f->topic == NULL )
			irc_send_num( irc, 482, "%s :Can't change this channel's topic", ic->name );
		else if( ic->f->topic( ic, new ) )
			irc_send_topic( ic, TRUE );
	}
	else
	{