4 static IRCSocket ircSocket { };
7 text = "Ecere IRC Client";
11 borderStyle = sizable;
12 anchor = { 0, 0, 0, 0 };
17 editTextColor = white;
20 referenceHeight = 480;
22 bool ProcessCommand(const char * command)
26 int count = Tokenize((char *)command, 10, tokens, false);
32 if(!strcmp(tokens[0], "/exit"))
34 ((GuiApplication)__thisModule).desktop.Destroy(0);
39 else if(!strcmp(tokens[0], "/server"))
43 //ircSocket = eSocket_Connect("paris.fr.eu.undernet.org", 6667, OnConnect, null);
44 //ircSocket = eSocket_Connect("irc2.magic.ca", 6667, OnConnect, null);
45 ircSocket.Connect(tokens[1], 6667);
55 if(!strcmpi(tokens[0], "/nick"))
57 ircSocket.Sendf( "NICK %s\n", tokens[1]);
58 ircSocket.Sendf("USER %s %s %s %s\n", tokens[1], tokens[1], tokens[1], tokens[1]);
62 else if(!strcmpi(tokens[0], "/msg"))
65 sprintf(sendbuf, "PRIVMSG %s :", tokens[1]);
66 for(c = 2; c<count; c++)
69 strcat(sendbuf, tokens[c]);
71 strcat(sendbuf, "\n");
72 ircSocket.SendString(sendbuf);
76 else if(!strcmpi(tokens[0], "/quit"))
79 strcpy(sendbuf, "QUIT :");
80 for(c = 1; c<count; c++)
83 strcat(sendbuf, tokens[c]);
85 strcat(sendbuf, "\n");
86 ircSocket.SendString(sendbuf);
90 else if(!strcmpi(tokens[0], "/join") || !strcmp(tokens[0], "/j"))
94 strcpy(sendbuf, "JOIN ");
95 if (tokens[1][0] != '#' && tokens[1][0] != '&')
99 strcat(sendbuf, tokens[1]);
101 strcat(sendbuf, "\n");
102 ircSocket.SendString(sendbuf);
109 strcpy(sendbuf, tokens[0]);
110 for(c = 1; c<count; c++)
112 strcat(sendbuf, " ");
113 strcat(sendbuf, tokens[c]);
115 strcat(sendbuf, "\n");
116 ircSocket.SendString(sendbuf);
123 static const char * const_NickName = "[User1491]";
125 class IRCSocket : Socket
127 uint OnReceive(const byte * recvBuffer, uint recvCount)
133 count = Min(recvCount, 512);
134 memcpy(buffer, recvBuffer, count);
137 // console.Log("\n");
141 /* // Auto connect login Script
142 if(!strcmpi(buffer, "NOTICE AUTH :*** Got ident response"))
144 ircSocket.Sendf("NICK %s\n", const_NickName );
145 ircSocket.Sendf("USER %s %s %s %s\n", const_NickName , const_NickName, const_NickName , const_NickName );
148 else*/ if(Tokenize(buffer, 10, tokens, false))
151 if(!strcmp(tokens[0], "PING"))
153 Sendf("PONG %s", tokens[1]);
160 void OnDisconnect(int code)
167 ircSocket.Sendf("NICK %s\n", const_NickName );
168 ircSocket.Sendf("USER %s %s %s %s\n", const_NickName, const_NickName, const_NickName , const_NickName );
173 class IdentSocket : Socket
175 uint OnReceive(const byte * recvBuffer, uint recvCount)
179 count = Min(recvCount, 1023);
180 memcpy(buffer, recvBuffer, count);
184 console.Log("\nIDENT:");
186 Sendf("%s : USERID : OTHER : jerome\n", buffer);
192 class IdentService : Service
197 IdentSocket { this };
201 static IdentService identService { };
203 class IRCApp : GuiApplication
207 identService.Start();