Implement an Unreal-like user mode "B" ("Bot mode")

This commit is contained in:
DNS777 2012-08-23 09:25:30 +00:00 committed by Alexander Barton
parent 360a254be0
commit c2b39fdede
4 changed files with 16 additions and 1 deletions

View File

@ -161,7 +161,7 @@
#endif
/** Supported user modes. */
#define USERMODES "acCiorRswx"
#define USERMODES "aBcCiorRswx"
/** Supported channel modes. */
#define CHANMODES "beiIklmnoOPrRstvz"

View File

@ -1111,6 +1111,12 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
Client_ID(from), Client_ID(c)))
return DISCONNECTED;
/* IRC-Bot? */
if (Client_HasMode(c, 'B') &&
!IRC_WriteStrClient(from, RPL_WHOISBOT_MSG,
Client_ID(from), Client_ID(c)))
return DISCONNECTED;
/* Connected using SSL? */
if (Conn_UsesSSL(Client_Conn(c)) &&
!IRC_WriteStrClient(from, RPL_WHOISSSL_MSG, Client_ID(from),

View File

@ -229,6 +229,14 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
ERR_NOPRIVILEGES_MSG,
Client_ID(Origin));
break;
case 'B': /* Bot */
if (Client_HasMode(Client, 'r'))
ok = IRC_WriteStrClient(Origin,
ERR_RESTRICTED_MSG,
Client_ID(Origin));
else
x[0] = 'B';
break;
case 'c': /* Receive connect notices
* (only settable by IRC operators!) */
if (!set || Client_Type(Client) == CLIENT_SERVER

View File

@ -72,6 +72,7 @@
#define RPL_NOTOPIC_MSG "331 %s %s :No topic is set"
#define RPL_TOPIC_MSG "332 %s %s :%s"
#define RPL_TOPICSETBY_MSG "333 %s %s %s %u"
#define RPL_WHOISBOT_MSG "335 %s %s :is a IRC Bot"
#define RPL_INVITING_MSG "341 %s %s %s%s"
#define RPL_INVITELIST_MSG "346 %s %s %s"
#define RPL_ENDOFINVITELIST_MSG "347 %s %s :End of channel invite list"