Sreyas-Sreelal / tgconnector

Telegram connector for samp
GNU General Public License v3.0
38 stars 4 forks source link
pawn rust sa-mp sa-mp-plugin samp sampctl telegram

TgConnector

Build Status Build status sampctl-supported GitHub issues GitHub pull requests GitHub pull license

A telegram connector plugin that helps to interact with telgram bots through SA-MP.

Installing

If you are a sampctl user

sampctl p install Sreyas-Sreelal/tgconnector

OR

Building

API

Checkout the Wiki

Example

A basic bot

#include<a_samp>
#include<tgconnector>
#include<zcmd>

#define CHAT_ID (TGChatId:"YOUR_CHAT_ID_HERE")

new TGBot:g_bot;

main() {
    //Store bot token in SAMP_TG_BOT environment variable and connect from it
    g_bot = TG_ConnectFromEnv("SAMP_TG_BOT");
    if(g_bot != INVALID_BOT_ID) {
        printf("bot connected successfully!");
    } else {
        printf("Error: bot couldn't connect");
    }
}

public OnTGMessage(TGBot:bot,TGUser:fromid[],TGMessage:messageid) {

    if(g_bot != bot){
        return 1;
    }

    new
        message[50],
        username[24],
        chatname[56],
        server_msg[128];

    TG_CacheGetMessage(message);
    TG_CacheGetUserName(username);
    TG_CacheGetChatName(chatname);

    format(server_msg,128,"[%s] %s(%s): %s",chatname,username,_:fromid,message);
    SendClientMessageToAll(-1,server_msg);

    return 1;
}

public OnTGUserJoined(TGBot:bot,TGUser:userid[]) {
    new
        TGChatId:chatid[12],
        username[24],
        chatname[56],
        server_msg[128];

    TG_CacheGetUserName(username);
    TG_CacheGetChatId(chatid);
    TG_CacheGetChatName(chatname);

    format(server_msg,128,"User %s(%d) joined %s(%s)",username,_:userid,chatname,_:chatid);
    SendClientMessageToAll(-1,server_msg);
    return 1;
}

public OnTGUserLeft(TGBot:bot,TGUser:userid[]) {
    new
        TGChatId:chatid[12],
        username[24],
        chatname[56],
        server_msg[128];

    TG_CacheGetUserName(username);
    TG_CacheGetChatID(chatid);
    TG_CacheGetChatName(chatname);

    format(server_msg,128,"User %s(%s) left %s(%s)",username,_:userid,chatname,_:chatid);
    SendClientMessageToAll(-1,server_msg);
    return 1;
}

CMD:sendtgmessage(playerid,params[]) {
    TG_SendMessage(g_bot,CHAT_ID,params);
    return 1;
}