Advertisement
ChaoticTheDev

IRC

Jan 5th, 2020
449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.21 KB | None | 0 0
  1. #include <a_samp>
  2. #include <irc>
  3. #include <foreach>
  4. #include <sscanf2>
  5.  
  6. #define IRC_MAIN_SERVER "host.name.net"
  7. #define IRC_PORT (1111)
  8. #define IRC_CHANNEL "name"
  9.  
  10. #define COLOR_ADMIN   (0xFF6347FF)
  11.  
  12. new GroupID, BotAdmin;
  13.  
  14. public OnGameModeInit()
  15. {
  16.     BotAdmin = IRC_Connect(IRC_MAIN_SERVER, IRC_PORT, "nickname", "realname", "username");
  17.     IRC_SetIntData(BotAdmin, E_IRC_CONNECT_DELAY, 5);
  18.  
  19.     GroupID = IRC_CreateGroup();
  20.     return 1;
  21. }
  22.  
  23. public IRC_OnConnect(botid, ip[], port)
  24. {
  25.     if(botid == BotAdmin)
  26.     {
  27.         IRC_JoinChannel(botid, IRC_CHANNEL, "key");
  28.         IRC_AddToGroup(GroupID, botid);
  29.     }
  30.     return 1;
  31. }
  32.  
  33. public IRC_OnDisconnect(botid, ip[], port, reason[])
  34. {
  35.     IRC_RemoveFromGroup(GroupID, botid);
  36.     return 1;
  37. }
  38.  
  39. public IRC_OnConnectAttempt(botid, ip[], port)
  40. {
  41.     printf("AdmWarn: IRC_OnConnectAttempt: Bot ID %d is now attempting to connect to IRC Server with Hostname (IP): %s, attached to port: %d", botid, ip, port);
  42.     return 1;
  43. }
  44.  
  45. public IRC_OnConnectAttemptFail(botid, ip[], port, reason[])
  46. {
  47.     printf("AdmWarn: IRC_OnConnectAttemptFail: Bot ID %d has failed to connect to IRC server with hostname (IP): %s, attached to port %d. The reason for this is %s", botid, ip, port, reason);
  48.     return 1;
  49. }
  50.  
  51. public OnGameModeExit()
  52. {
  53.     IRC_Quit(BotAdmin, "AdmWarn: The server has shut down and the gamemode will stop running.");
  54.     IRC_DestroyGroup(GroupID);
  55.     return 1;
  56. }
  57.  
  58. public OnPlayerConnect(playerid)
  59. {
  60.     new string[128];
  61.  
  62.     format(string, sizeof(string), "AdmWarn: Character %s (ID: %d) joined the server.", ReturnName(playerid), playerid);
  63.     IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  64.     return 1;
  65. }
  66.  
  67. public OnPlayerDisconnect(playerid, reason)
  68. {
  69.     new string[200];
  70.    
  71.     format(string, sizeof(string), "AdmWarn: Character %s (ID: %d) disconnected from the server.", ReturnName(playerid), playerid);
  72.     IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  73.     return 1;
  74. }
  75.  
  76. public OnPlayerDeath(playerid, killerid, reason)
  77. {
  78.     new string[200];
  79.     if(killerid != INVALID_PLAYER_ID)
  80.     {
  81.         format(string, sizeof(string), "AdmWarn: %s (ID: %d) died (Killer: %s ID: %d).", ReturnName(playerid), playerid, ReturnName(killerid), killerid);
  82.         SendAdminMessage(COLOR_ADMIN, string);
  83.  
  84.         format(string, sizeof(string), "AdmWarn: %s (ID: %d) died (Killer: %s ID: %d).", ReturnName(playerid), playerid, ReturnName(killerid), killerid);
  85.         IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  86.     }
  87.     else
  88.     {
  89.         format(string, sizeof(string), "AdmWarn: %s (ID: %d) died.", ReturnName(playerid), playerid);
  90.         SendAdminMessage(COLOR_ADMIN, string);
  91.  
  92.         format(string, sizeof(string), "AdmWarn: %s (ID: %d) died.", ReturnName(playerid), playerid);
  93.         IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  94.     }
  95.     return 1;
  96. }
  97.  
  98. public OnVehicleDeath(vehicleid, killerid)
  99. {
  100.     new string[200];
  101.     format(string, sizeof(string), "AdmWarn: Vehicle ID %d was destroyed by %s.", vehicleid, ReturnName(killerid));
  102.     IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  103.     return 1;
  104. }
  105.  
  106. stock ReturnName(playerid)
  107. {
  108.     new name[90], character[MAX_PLAYER_NAME];
  109.     GetPlayerName(playerid, character, sizeof(character));
  110.     name = character;
  111.     return name;
  112. }
  113.  
  114. stock SendAdminMessage(color, const str[])
  115. {
  116.     foreach(new i : Player)
  117.     {
  118.         if(IsPlayerAdmin(i))
  119.         {
  120.             SendClientMessage(i, color, str);
  121.         }
  122.     }
  123.     return 1;
  124. }
  125.  
  126. IRCCMD:a(botid, channel[], user[], host[], params[])
  127. {
  128.     if (IRC_IsOp(botid, channel, user))
  129.     {
  130.         new string[200];
  131.        
  132.         if(isnull(params))
  133.         {
  134.                         format(string, sizeof(string), "Usage: !a [Admin Message]");
  135.             IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  136.         }
  137.         else
  138.         {
  139.             format(string, sizeof(string), "IRC Admin: %s: %s", user, params);
  140.             SendAdminMessage(0x6CEFF0FF, string);
  141.         }
  142.     }
  143.     return 1;
  144. }
  145.  
  146. IRCCMD:kick(botid, channel[], user[], host[], params[])
  147. {
  148.     if(IRC_IsOp(botid, channel, user))
  149.     {
  150.         new playerid, reason[64];
  151.  
  152.         if(sscanf(params, "ds[64]", playerid, reason))
  153.         {
  154.             IRC_Say(botid, user, "Usage: !kick [playerid] [reason]");
  155.             return 1;
  156.         }
  157.  
  158.         if(IsPlayerConnected(playerid))
  159.         {
  160.             new string[128];
  161.  
  162.             format(string, sizeof(string), "AdmCmd: %s was kicked by %s (IRC), Reason: %s", ReturnName(playerid), user, reason);
  163.             IRC_GroupSay(GroupID, IRC_CHANNEL, string);
  164.             Kick(playerid);
  165.         }
  166.     }
  167.     return 1;
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement