Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <irc>
- #include <foreach>
- #include <sscanf2>
- #define IRC_MAIN_SERVER "host.name.net"
- #define IRC_PORT (1111)
- #define IRC_CHANNEL "name"
- #define COLOR_ADMIN (0xFF6347FF)
- new GroupID, BotAdmin;
- public OnGameModeInit()
- {
- BotAdmin = IRC_Connect(IRC_MAIN_SERVER, IRC_PORT, "nickname", "realname", "username");
- IRC_SetIntData(BotAdmin, E_IRC_CONNECT_DELAY, 5);
- GroupID = IRC_CreateGroup();
- return 1;
- }
- public IRC_OnConnect(botid, ip[], port)
- {
- if(botid == BotAdmin)
- {
- IRC_JoinChannel(botid, IRC_CHANNEL, "key");
- IRC_AddToGroup(GroupID, botid);
- }
- return 1;
- }
- public IRC_OnDisconnect(botid, ip[], port, reason[])
- {
- IRC_RemoveFromGroup(GroupID, botid);
- return 1;
- }
- public IRC_OnConnectAttempt(botid, ip[], port)
- {
- 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);
- return 1;
- }
- public IRC_OnConnectAttemptFail(botid, ip[], port, reason[])
- {
- 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);
- return 1;
- }
- public OnGameModeExit()
- {
- IRC_Quit(BotAdmin, "AdmWarn: The server has shut down and the gamemode will stop running.");
- IRC_DestroyGroup(GroupID);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new string[128];
- format(string, sizeof(string), "AdmWarn: Character %s (ID: %d) joined the server.", ReturnName(playerid), playerid);
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new string[200];
- format(string, sizeof(string), "AdmWarn: Character %s (ID: %d) disconnected from the server.", ReturnName(playerid), playerid);
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- new string[200];
- if(killerid != INVALID_PLAYER_ID)
- {
- format(string, sizeof(string), "AdmWarn: %s (ID: %d) died (Killer: %s ID: %d).", ReturnName(playerid), playerid, ReturnName(killerid), killerid);
- SendAdminMessage(COLOR_ADMIN, string);
- format(string, sizeof(string), "AdmWarn: %s (ID: %d) died (Killer: %s ID: %d).", ReturnName(playerid), playerid, ReturnName(killerid), killerid);
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- }
- else
- {
- format(string, sizeof(string), "AdmWarn: %s (ID: %d) died.", ReturnName(playerid), playerid);
- SendAdminMessage(COLOR_ADMIN, string);
- format(string, sizeof(string), "AdmWarn: %s (ID: %d) died.", ReturnName(playerid), playerid);
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- }
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- new string[200];
- format(string, sizeof(string), "AdmWarn: Vehicle ID %d was destroyed by %s.", vehicleid, ReturnName(killerid));
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- return 1;
- }
- stock ReturnName(playerid)
- {
- new name[90], character[MAX_PLAYER_NAME];
- GetPlayerName(playerid, character, sizeof(character));
- name = character;
- return name;
- }
- stock SendAdminMessage(color, const str[])
- {
- foreach(new i : Player)
- {
- if(IsPlayerAdmin(i))
- {
- SendClientMessage(i, color, str);
- }
- }
- return 1;
- }
- IRCCMD:a(botid, channel[], user[], host[], params[])
- {
- if (IRC_IsOp(botid, channel, user))
- {
- new string[200];
- if(isnull(params))
- {
- format(string, sizeof(string), "Usage: !a [Admin Message]");
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- }
- else
- {
- format(string, sizeof(string), "IRC Admin: %s: %s", user, params);
- SendAdminMessage(0x6CEFF0FF, string);
- }
- }
- return 1;
- }
- IRCCMD:kick(botid, channel[], user[], host[], params[])
- {
- if(IRC_IsOp(botid, channel, user))
- {
- new playerid, reason[64];
- if(sscanf(params, "ds[64]", playerid, reason))
- {
- IRC_Say(botid, user, "Usage: !kick [playerid] [reason]");
- return 1;
- }
- if(IsPlayerConnected(playerid))
- {
- new string[128];
- format(string, sizeof(string), "AdmCmd: %s was kicked by %s (IRC), Reason: %s", ReturnName(playerid), user, reason);
- IRC_GroupSay(GroupID, IRC_CHANNEL, string);
- Kick(playerid);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement