Esempio n. 1
0
void handleLinksMsg(char* senderUsername , char* msgIn)
{
	WDL_String msgOut ; msgOut.Set("Link order:") ;
	int linkIdx ; int lastUsernameIdx = LINKS_CHAT_TRIGGER_LEN ; int usernameLen = -1 ;
	for (linkIdx = 0 ; linkIdx < N_LINKS ; ++linkIdx)
	{
		// parse username
		lastUsernameIdx += usernameLen + 1 ; usernameLen = -1 ; char aChar ;
		do aChar = msgIn[lastUsernameIdx + (++usernameLen)] ;
		while (aChar && aChar != ' ') ; if (!usernameLen) return ;

		char username[255] ; strncpy(username , msgIn + lastUsernameIdx , usernameLen) ; username[usernameLen] = '\0' ;

#if IS_CHAT_LINKS
		// chat full link order
		int userId = TeamStream::GetUserIdByName(username) ; msgOut.Append("\n") ;
		char linkMsg[255] ; sprintf(linkMsg , "Link %d: %s" , linkIdx + 1 , username) ; msgOut.Append(linkMsg) ;
		if (userId == USERID_NOBODY && strcmp(username , USERNAME_NOBODY)) msgOut.Append(" is not here") ;
#else IS_CHAT_LINKS
		int userId = TeamStream::GetUserIdByName(username) ;
#endif IS_CHAT_LINKS

		// set link
		if (!isUsernameLocal(senderUsername))
			if (TeamStream::IsUserIdReal(userId)) TeamStream::SetLink(userId , username , linkIdx , true) ;
			else TeamStream::Set_Link_GUI(USERID_NOBODY , username , linkIdx , N_LINKS) ;
	}
#if IS_CHAT_LINKS
	chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;
#endif IS_CHAT_LINKS
}
Esempio n. 2
0
void handleVoteMsg(char* username , char* msgIn)
{
	WDL_String msgOut(username) ; msgOut.Append(" votes to set ") ; char bpibpm[4] = "\0" ;
	strncpy(bpibpm , msgIn += VOTE_CHAT_MESSAGE_LEN , 3) ; msgOut.Append(bpibpm) ;
	msgOut.Append(" to ") ; strncpy(bpibpm , msgIn += 4 , 3) ; msgOut.Append(bpibpm) ;
	chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;
}
Esempio n. 3
0
void handleTeamStreamMsg(char* fullName , char* username , char* msgIn , bool isPrivate)
{
	bool isEnableTeamStream = !strcmp(msgIn + TEAMSTREAM_CHAT_TRIGGER_LEN , "enabled") ;
	WDL_String msgOut ; msgOut.Set(username) ;
	msgOut.Append((isEnableTeamStream)? " is in TeamStream mode" : " is in NinJam mode") ;
	chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;

	int userId = TeamStream::AddUser(username , fullName) ; if (userId <= USERID_LOCAL) return ;

	if (!isEnableTeamStream || !TeamStream::IsTeamStreamUsernameCollision(username))
		TeamStream::SetTeamStreamMode(userId , isEnableTeamStream) ;
	bool isFirstReply = (!TeamStream::GetNRemoteUsers()) ;
	if (isPrivate) { if (isFirstReply) TeamStream::SendLinksReqChatMsg(fullName) ; }
	else { TeamStream::SendTeamStreamChatMsg(true , fullName) ; TeamStream::SendChatColorChatMsg(true , fullName) ; }

// TODO: we could combine SendTeamStreamChatMsg() with SendChatColorChatMsg()
// TODO: in order for ID_TEAMSTREAM_LOAD/SAVE to work we need to check the current link order now
//	if (!isPrivate) and SetLink() now if match (i think this means bringing back the m_links array)
// and to be sure to remove exitting users only from the listview but keep them in the array?
}
Esempio n. 4
0
void chatmsg_cb(int user32, NJClient *inst, char **parms, int nparms)
{
  if (!parms[0]) return;

  if (!strcmp(parms[0],"TOPIC"))
  {
    if (parms[2])
    {
      WDL_String tmp;
      if (parms[1] && *parms[1])
      {
        tmp.Set(parms[1]);
        if (parms[2][0])
        {
          tmp.Append(" sets topic to: ");
          tmp.Append(parms[2]);
        }
        else
        {
          tmp.Append(" removes topic.");
        }  
      }
      else
      {
        if (parms[2][0])
        {
          tmp.Set("Topic is: ");
          tmp.Append(parms[2]);
        }
        else tmp.Set("No topic is set.");
      }

      g_topic.Set(parms[2]);
      chat_addline("",tmp.Get());
    
    }
  }
  else if (!strcmp(parms[0],"MSG"))
  {
    if (parms[1] && parms[2])
      chat_addline(parms[1],parms[2]);
  } 
  else if (!strcmp(parms[0],"PRIVMSG"))
  {
    if (parms[1] && parms[2])
    {
      WDL_String tmp;
      tmp.Set("*");
      tmp.Append(parms[1]);
      tmp.Append("* ");
      tmp.Append(parms[2]);
      chat_addline(NULL,tmp.Get());
    }
  } 
  else if (!strcmp(parms[0],"JOIN") || !strcmp(parms[0],"PART"))
  {
    if (parms[1] && *parms[1])
    {
      WDL_String tmp(parms[1]);
      tmp.Append(" has ");
      tmp.Append(parms[0][0]=='P' ? "left" : "joined");
      tmp.Append(" the server");
      chat_addline("",tmp.Get());
    }
  } 
}
Esempio n. 5
0
void chatmsg_cb(int user32, NJClient *inst, char **parms, int nparms)
{
  if (!parms[0]) return;

	char* username = TeamStream::TrimUsername(parms[1]) ;	

  if (!strcmp(parms[0],"TOPIC"))
  {
    if (parms[2])
    {
      WDL_String tmp;
      if (parms[1] && *parms[1])
      {
        tmp.Set("<Server> ") ; tmp.Append(username) ;
        if (parms[2][0])
        {
          tmp.Append(" sets topic to: ");
          tmp.Append(parms[2]);
        }
        else
        {
          tmp.Append(" removes topic.");
        }  
      }
      else
      {
        if (parms[2][0])
        {
          tmp.Set("Topic is: ");
          tmp.Append(parms[2]);
        }
        else tmp.Set("No topic is set.");
      }

      g_topic.Set(parms[2]);
      chat_addline("",tmp.Get());
    
    }
  }
  else if (!strcmp(parms[0],"MSG"))
  {
		if (parms[1] && parms[2] && !parseChatTriggers(parms[1] , username , parms[2] , false))
			chat_addline(username , parms[2]) ;
  } 
  else if (!strcmp(parms[0],"PRIVMSG"))
  {
    if (parms[1] && parms[2])
    {
			if (!parseChatTriggers(parms[1] , username , parms[2] , true))
			{
				WDL_String tmp ; tmp.Set("<PM from ") ;
				tmp.Append(username) ; tmp.Append("> ") ; tmp.Append(parms[2]) ;
				chat_addline(NULL,tmp.Get());
			}
    }
  } 
  else if (!strcmp(parms[0],"JOIN") || !strcmp(parms[0],"PART"))
  {
    if (parms[1] && *parms[1])
    {
      WDL_String tmp(username) ;
      tmp.Append(" has ");
      tmp.Append(parms[0][0]=='P' ? "left" : "joined");
      tmp.Append(" the server");
      chat_addline("",tmp.Get());
    }
  } 
}