Advertisement
Guest User

Untitled

a guest
Oct 11th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.11 KB | None | 0 0
  1. TReiIRC2 = class
  2. private
  3. FSocket : TSocket;
  4. FWSAEvent : THandle;
  5. msNextSend : DWORD;
  6.  
  7. FServerType : TReiIRCServerType;
  8. FServerProt : Integer;
  9. FIPList : TReiStringList;
  10. FIPListPos : Integer;
  11.  
  12. FCommandHandler : TReiIRCCommandHandler;
  13.  
  14. FMessages : TReiStringList;
  15.  
  16. thd_MSGContainer : TThread_MSGContainer;
  17. thd_NotifyList : TThread_NotifyList;
  18. thd_WSAEvent : TThread_WSAEvent;
  19.  
  20. FConnected : Boolean;
  21. FSockConnected : Boolean;
  22. FMOTDReceived : Boolean;
  23.  
  24. FAntiFlood : Boolean;
  25.  
  26. FServer : String;
  27. FPort : Integer;
  28. FPassword : String;
  29. FNickname : String;
  30. FUsername : String;
  31. FRealname : String;
  32. FUserMode : TReiIRCUserModes;
  33.  
  34. FAway : Boolean;
  35. FAwayMessage : String;
  36.  
  37. FMOTD : ReiGlobal.TStringList;
  38. FWhoisInfo : TReiIRCWhoisInfo;
  39.  
  40. FReplies : TReiIRCCTCPReplies;
  41. FChannels : TReiIRCChannels;
  42.  
  43. {$IFDEF NOTIFYLIST}
  44. FNotifyList : TReiIRCNotifyList;
  45. {$ENDIF}
  46.  
  47. {$IFDEF GETSERVERPARAMS}
  48. FServerParams : TReiIRCServerParams;
  49. {$ENDIF}
  50.  
  51. FTag : Integer;
  52.  
  53. FOnRaw : TReiIRCRawEvent;
  54. FOnServerWelcome : TReiIRCServerWelcomeEvent;
  55. FOnMOTD : TReiIRCMOTDEvent;
  56. FOnPing : TReiIRCPingEvent;
  57. FOnNicknameChange : TReiIRCNicknameChangeEvent;
  58. FOnPrivateMessage : TReiIRCPrivMsgEvent;
  59. FOnNotice : TReiIRCNoticeEvent;
  60. FOnCTCP : TReiIRCCTCPEvent;
  61. FOnAway : TReiIRCAwayEvent;
  62. FOnErrorReceive : TReiIRCErrorReceiveEvent;
  63. FOnJoin : TReiIRCJoinEvent;
  64. FOnPart : TReiIRCPartEvent;
  65. FOnWhoisReceive : TReiIRCWhoisReceiveEvent;
  66. FOnNicknameInUse : TReiIRCNicknameInUseEvent;
  67. FOnKick : TReiIRCKickEvent;
  68. FOnQuit : TReiIRCQuitEvent;
  69. FOnTopic : TReiIRCTopicEvent;
  70. FOnInvite : TReiIRCInviteEvent;
  71. FOnBan : TReiIRCBanEvent;
  72. FOnUnban : TReiIRCBanEvent;
  73. FOnOp : TReiIRCUserStatusEvent;
  74. FOnDeOp : TReiIRCUserStatusEvent;
  75. FOnVoice : TReiIRCUserStatusEvent;
  76. FOnDevoice : TReiIRCUserStatusEvent;
  77. FOnNicknameNotify : TReiIRCNicknameNotifyEvent;
  78. FOnModeChange : TReiIRCModeChangeEvent;
  79.  
  80. procedure CommandWELCOME(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  81. procedure CommandYOURHOST(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  82. procedure CommandCREATED(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  83. procedure CommandMYINFO(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  84. procedure CommandISUPPORT(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  85. procedure CommandMOTDSTART(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  86. procedure CommandMOTD(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  87. procedure CommandENDOFMOTD(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  88. procedure CommandNOMOTD(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  89. procedure CommandPING(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  90. procedure CommandAWAY(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  91. procedure CommandUNAWAY(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  92. procedure CommandNOWAWAY(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  93. {$IFDEF NOTIFYLIST}
  94. procedure CommandISON(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  95. {$ENDIF}
  96. procedure CommandWHOISUSER(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  97. procedure CommandWHOISSERVER(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  98. procedure CommandWHOISOPERATOR(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  99. procedure CommandWHOISIDLE(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  100. procedure CommandWHOISCHANNELS(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  101. procedure CommandENDOFWHOIS(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  102. procedure CommandNICKNAMEINUSE(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  103. procedure CommandNAMREPLY(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  104. procedure CommandTOPIC(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  105. procedure CommandERROR(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  106. procedure CommandNICK(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  107. procedure CommandPRIVMSG(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  108. procedure CommandNOTICE(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  109. procedure CommandJOIN(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  110. procedure CommandPART(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  111. procedure CommandKICK(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  112. procedure CommandQUIT(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  113. procedure CommandINVITE(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  114. procedure CommandMODE(const ASender : TReiIRCCommandHandler; const AMessage : TReiIRCRawMessageInfo);
  115.  
  116. procedure thdfunc_WSAEvent;
  117. procedure thdfunc_MSGContainer;
  118. {$IFDEF NOTIFYLIST}
  119. procedure thdfunc_NotifyList;
  120. {$ENDIF}
  121.  
  122. {$IFDEF USERLIST}
  123. function SplitUser(const AUser : String; out ANickname, AFlags : String) : Integer;
  124. {$ENDIF}
  125. function ParseRawMessage(const ARaw : String; out AMessage : TReiIRCRawMessageInfo) : Integer;
  126. function ParseRawLine(const ALine : String) : Integer;
  127. function ParseCTCPQuery(const AMessage : TReiIRCRawMessageInfo) : Integer;
  128. procedure ResolveServerIPs;
  129. protected
  130. public
  131. constructor Create;
  132. destructor Destroy; override;
  133.  
  134. function SetServer(const AServer : String; const APort : Integer = 6667; const AType : TReiIRCServerType = stIPv4; const APassword : String = '') : Integer;
  135. function SetNickname(const ANickname : String) : Integer;
  136. function SetUsername(const AUsername : String) : Integer;
  137. function SetRealname(const ARealname : String) : Integer;
  138.  
  139. function GetUserMode : String;
  140.  
  141. function Disconnect : Integer;
  142. function Connect : Integer;
  143.  
  144. function SetAway(const AAwayMessage : String = '') : Integer;
  145. function SetMode(const ATarget, AMode, AParams : String) : Integer;
  146.  
  147. function Quit(const AReason : String = '') : Integer;
  148. function Raw(const AMessage : String) : Integer;
  149. function Pong(const AServer : String; const AServer2 : String = '') : Integer;
  150. function Notice(const ATarget, AMessage : String) : Integer;
  151. function CTCPReply(const ATarget, ACTCP : String; const AReply : String = '') : Integer;
  152. function Join(const AChannel : String; const AKeyword : String = '') : Integer;
  153. function Part(const AChannel : String; const AReason : String = '') : Integer;
  154. function Say(const ATarget, AMessage : String) : Integer;
  155. function Kick(const AChannel, ANickname, AReason : String) : Integer;
  156. function Ban(const AChannel, AHostmask : String) : Integer;
  157. function Unban(const AChannel, AHostmask : String) : Integer;
  158. function Invite(const AChannel, ANickname : String) : Integer;
  159. function OP(const AChannel, ANickname : String) : Integer;
  160. function DeOP(const AChannel, ANickname : String) : Integer;
  161. function Voice(const AChannel, ANickname : String) : Integer;
  162. function DeVoice(const AChannel, ANickname : String) : Integer;
  163. function SetTopic(const AChannel, ATopic : String) : Integer;
  164. function RequestNicknameList(const AChannel : String) : Integer;
  165. function Who(const AQuery : String) : Integer;
  166. function WhoIs(const AQuery : String) : Integer;
  167. function WhoWas(const AQuery : String) : Integer;
  168.  
  169. property IsConnected : Boolean read FConnected;
  170. property IsAway : Boolean read FAway;
  171. published
  172. property GetServer : String read FServer;
  173. property GetPort : Integer read FPort;
  174. property GetPassword : String read FPassword;
  175. property GetNickname : String read FNickname;
  176. property GetUsername : String read FUsername;
  177. property GetRealname : String read FRealname;
  178. property UserMode : TReiIRCUserModes read FUserMode write FUserMode;
  179. property AntiFlood : Boolean read FAntiFlood write FAntiFlood;
  180. property GetChannels : TReiIRCChannels read FChannels;
  181. property IsMOTDReceived : Boolean read FMOTDReceived;
  182. property ServerType : TReiIRCServerType read FServerType write FServerType;
  183. property Tag : Integer read FTag write FTag;
  184.  
  185. {$IFDEF NOTIFYLIST}
  186. property NotifyList : TReiIRCNotifyList read FNotifyList write FNotifyList;
  187. {$ENDIF}
  188.  
  189. {$IFDEF GETSERVERPARAMS}
  190. property GetServerParams : TReiIRCServerParams read FServerParams;
  191. {$ENDIF}
  192.  
  193. property OnRaw : TReiIRCRawEvent read FOnRaw write FOnRaw;
  194. property OnServerWelcome : TReiIRCServerWelcomeEvent read FOnServerWelcome write FOnServerWelcome;
  195. property OnMOTD : TReiIRCMOTDEvent read FOnMOTD write FOnMOTD;
  196. property OnPing : TReiIRCPingEvent read FOnPing write FOnPing;
  197. property OnNicknameChange : TReiIRCNicknameChangeEvent read FOnNicknameChange write FOnNicknameChange;
  198. property OnPrivateMessage : TReiIRCPrivMsgEvent read FOnPrivateMessage write FOnPrivateMessage;
  199. property OnNotice : TReiIRCNoticeEvent read FOnNotice write FOnNotice;
  200. property OnCTCPReceive : TReiIRCCTCPEvent read FOnCTCP write FOnCTCP;
  201. property OnAway : TReiIRCAwayEvent read FOnAway write FOnAway;
  202. property OnErrorReceive : TReiIRCErrorReceiveEvent read FOnErrorReceive write FOnErrorReceive;
  203. property OnWhoisReceive : TReiIRCWhoisReceiveEvent read FOnWhoisReceive write FOnWhoisReceive;
  204. property OnNicknameInUse : TReiIRCNicknameInUseEvent read FOnNicknameInUse write FOnNicknameInUse;
  205. property OnKick : TReiIRCKickEvent read FOnKick write FOnKick;
  206. property OnQuit : TReiIRCQuitEvent read FOnQuit write FOnQuit;
  207. property OnTopic : TReiIRCTopicEvent read FOnTopic write FOnTopic;
  208. property OnInvite : TReiIRCInviteEvent read FOnInvite write FOnInvite;
  209. property OnBan : TReiIRCBanEvent read FOnBan write FOnBan;
  210. property OnUnban : TReiIRCBanEvent read FOnUnban write FOnUnban;
  211. property OnOp : TReiIRCUserStatusEvent read FOnOp write FOnOp;
  212. property OnDeOp : TReiIRCUserStatusEvent read FOnDeOp write FOnDeOp;
  213. property OnVoice : TReiIRCUserStatusEvent read FOnVoice write FOnVoice;
  214. property OnDeVoice : TReiIRCUserStatusEvent read FOnDeVoice write FOnDeVoice;
  215. property OnNicknameNotify : TReiIRCNicknameNotifyEvent read FOnNicknameNotify write FOnNicknameNotify;
  216. property OnJoin : TReiIRCJoinEvent read FOnJoin write FOnJoin;
  217. property OnPart : TReiIRCPartEvent read FOnPart write FOnPart;
  218. property OnModeChange : TReiIRCModeChangeEvent read FOnModeChange write FOnModeChange;
  219. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement