Portal SAMP
[Plugin] Telegram Connector - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Lançamentos (https://portalsamp.com/forumdisplay.php?fid=26)
+---- Fórum: Plugins (https://portalsamp.com/forumdisplay.php?fid=10)
+---- Tópico: [Plugin] Telegram Connector (/showthread.php?tid=14)



Telegram Connector - NelsonC. - 28/09/2020

Telegram Connector




Instalação

Caso você use sampctl


Citar:sampctl p install Sreyas-Sreelal/tgconnector


Ou


  • Baixe arquivos binários adequados de versões para seu sistema operacional
  • Adicione-o à sua pasta de plug-ins
  • Adicione tgconnector a server.cfg ou tgconnector.so (para linux)
  • Adicionar tgconnector.inc na pasta de includes

Build
  • Clonar o repositório
Citar:


  • Use makefile para compilar e testar

    Ambiente de teste de configuração:
    make setup
  • Para fazer o release da versão de lançamento:
    make release
  • Executar testes:
    make run

Exemplo




Código:
#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 = TGConnectFromEnv("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];

    TGCacheGetMessage(message);
    TGCacheGetUserName(username);
    TGCacheGetChatName(chatname);
   
    format(server_msg,128,"[%s] %s(%d): %s",chatname,username,_:fromid,message);
    SendClientMessageToAll(-1,server_msg);
   
    return 1;
}


public OnTGUserJoined(TGBot:bot,TGUser:userid) {
    new
        TGChatId:chatid[15],
        username[24],
        chatname[56],
        server_msg[128];
   
    //Retrive data stored in current context
    TGCacheGetUserName(username);
    TGCacheGetChatId(chatid);
    TGCacheGetChatName(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[15],
        username[24],
        chatname[56],
        server_msg[128];
   
    TGCacheGetUserName(username);
    TGCacheGetChatId(chatid);
    TGCacheGetChatName(chatname);

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

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


Notas

Este plugin ainda está em WIP e mais testes precisam ser feitos. Se você encontrar algum bug ou tiver algo a contribuir, sinta-se à vontade para abrir um problema ou solicitar solicitação no github.
Além disso, certifique-se de não compartilhar seu token de bot com ninguém, sendo recomendado armazená-lo dentro de uma variável de ambiente.

( Tópico foi traduzido do inglês para português )

Repositório


Source: https://github.com/Sreyas-Sreelal/tgconnector
Releases: https://github.com/Sreyas-Sreelal/tgconnector/releases
Wiki: https://github.com/Sreyas-Sreelal/tgconnector/wiki