Portal SAMP
[Ajuda] discord-connector AJUDA - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] discord-connector AJUDA (/showthread.php?tid=3642)



discord-connector AJUDA - diggao - 25/05/2023

salve, fiz um sistema de whitelist e está funcionando tudo corretamente, eu queria sempre que o player logar no servidor verificar se ele está no meu servidor do discord.

Situação: o player pode fazer a whitelist e sair do meu discord e continuar jogando, não quero q isso ocorra.

Estou meio perdido e nao sei oq fazer, queria fazer que quando ele logasse no sv verificasse se ele ta no discord e se nao tiver ele vai ter q fazer a whitelist novamente.


RE: discord-connector AJUDA - Carlos Victor - 25/05/2023

Você pode fazer com que quando alguém saia do seu Discord e tenha Whitelist, ela será removida, irei deixar os dois exemplos abaixos:

Verificando quando o jogador tem seus dados carregados
Código PHP:
// Suponho que você tenha uma função que carregue os dados do jogador, irei utilizar SQLite como exemplo, mas você pode adaptar ao seu tipo de salvamento e como você geta/seta as informações
Load_Player(playerid)
{
    static
        
DCC_User:user,
        
query[128],
        
DBResult:result;

    
format(querysizeof query"SELECT * FROM `accounts` WHERE `name`='%q';"GetName(playerid));
    
result db_query(databasequery);

    if(
db_num_rows(result)) {
        
db_get_field_assoc(result"userid"PlayerData[playerid][pUserID], DCC_ID_SIZE);

        if((
user DCC_FindUserById(PlayerData[playerid][pUserID])) == DCC_INVALID_USER)
        {
            
// O jogador não foi encontrado, pode ter saído do servidor, não sei pode ocorrer algum problema em relação a isso no exemplo de bugar...
        
}
    }

    
db_free_result(result);
    return 
1;


Verificando quando algum membro sai do Discord.
Código PHP:
public DCC_OnGuildMemberRemove(DCC_Guild:guildDCC_User:user)
{
    if(
guild == YOUR_GUILD_ID// Coloca o seu servidor aí
    
{    
        static
            
query[128],
            
DBResult:result;

        
format(querysizeof(query), "SELECT * FROM `accounts` WHERE `userid`='%q';"GetUserId(user));
        
result db_query(databasequery);        

        if(
db_num_rows(result)) // Caso a consulta acima retornar alguma linha, significa que quem saiu tem uma conta, aí eu deleto abaixo
        
{
            
format(querysizeof(query), "DELETE FROM `accounts` WHERE `userid`='%q';"GetUserId(user));
            
db_free_result(db_query(databasequery));
        }
    }
    return 
1;


Caso tenha dúvida, fique a vontade.