Ir para conteúdo
Propaganda

Posts Recomendados

  • Administrador
4 minutos atrás, gutinha disse:

Opa, meu primeiro tópico aqui, provavelmente não vai estar bem formatado mas é isso.

 

Bora lá!

Oq eu vou trazer é um script simples pra integrar um webhook do discord no seu servidor. Assim você pode enviar mensagens pro discord pelo servidor, por ex: Fzr um log de ações (Tal staff criou tal item etc)

 

1° Passo: 

Instalar o ltn12:

No windows eu não testei, então quem usar ai vai ter q se virar 😅

No linux é simples, digite no terminal:

luarocks install --server=https://luarocks.org/dev ltn12

Caso ele não reconheça o luarocks, é bem simples de instalar, só seguir o get started aqui: 

This is the hidden content, please

Feito isso, agora vamos para a parte do servidor. Na pasta lib/ crie um arquivo chamado discord.lua e coloque o seguinte código:

  Mostrar conteúdo oculto
local http = require("socket.http")
local ltn12 = require("ltn12")

function sendDiscordEmbed(payloads)
    local webhookUrl = "UrlAqui"  -- Coloque a URL do seu webhook aqui

    local payload = {
        embeds = {
            payloads
        }
    }

    local headers = {
        ["Content-Type"] = "application/json"
    }

    local response_body = {}

    local res, code, response_headers = http.request{
        url = webhookUrl,
        method = "POST",
        headers = headers,
        source = ltn12.source.string(json.encode(payload)),
        sink = ltn12.sink.table(response_body)
    }

    if code ~= 200 and code ~= 204 then
        print("Erro ao enviar mensagem para o Discord. Código de status: " .. code)
    end    
end

 

 Feito isso já está funcionando, basta reiniciar o servidor e usar a função.

 

Vou deixar aqui um exemplo de uso bem simples.

Print de como ficaria:

image.png.defa0cd86ebbb587a36089e34f4c67d6.png

Código:

  Mostrar conteúdo oculto
local embed = {
title = getPlayerName(cid),
description = "Criou um " .. name .. " (Boost: " ..(t[2] and tonumber(t[2]) or 0) ..")",
color = 16774400
}
sendDiscordEmbed(embed)

Lembrando que o payload é dinâmico, então tem muito mais variáveis ai no meio. Pra quem quiser brincar e customizar, aqui tem um link do embed generator 

This is the hidden content, please
 ou 
This is the hidden content, please

 

 

Tópico aprovado, obrigado pela contribuição ❤️

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-18
Compartilhar em outros sites

  • Administrador
29 minutos atrás, Guest Icaro disse:

HTTP/1.1 301 Moved Permanently
Erro ao enviar mensagem para o Discord. Código de status: 301

sigo recebendo esses erros.

Seu link do webhook está correto? O envio do payload tá com as variáveis certas?

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-37
Compartilhar em outros sites

  • Administrador
6 minutos atrás, dso15 disse:

É possível enviar mensagem em chats ? Exemplo fulano capturou tal pokémon 

É sim, é só você usar o webhook no script de catch e configurar o webhook no discord pra enviar pro canal que você quer

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-122
Compartilhar em outros sites

  • 2 semanas atrás...

Resolvido: 

apt-get install luarocks

luarocks install luasec

local http = require("socket.http")
local ssl = require("ssl")
local ltn12 = require("ltn12")

webhookUrl = "https://..................................................................................................

_________________________________________________________________________________________________________

 

image.png.2ec32bddf4f27e9195497e3d1ca207d6.png

com o https: e com o http

image.thumb.png.6a22a6fd5229ad93056f7d97526b0be3.png

url: Removido hook removido tbm

tes tando com o 

This is the hidden content, please

image.thumb.png.8295784483041b0931103407a887a38c.png

  • Like 16
  • Thanks 3
Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-301
Compartilhar em outros sites

  • Administrador
Em 19/08/2023 em 04:40, danielkz disse:

Funciona em otx2?

Acredito que sim

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-374
Compartilhar em outros sites

lembrando que se vc põe ele pra fazer uma requisição http o servidor vai ficar esperando o destinatário responder a mensagem pra só então liberar o processamento do resto das coisas

com mt gente online ou com muitas requisições vc vai ver seu servidor começar a dar várias travadinhas de 1s que eh o tempo de resposta mais comum do webhook do discord

o recomendado eh fazer isso por uma aplicação fora do tfs

obrigado boa noite

  • Like 1
  • Thanks 1
Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-418
Compartilhar em outros sites

  • 1 mês depois...

é possivel colocar a weebhook direto no script ? estou fazendo varias logs, e seria legal separar cada um em um chat separado... 

EXEMPLO:

 

local embed = {
title = getPlayerName(cid),
description = "Criou um " .. name .. " (Boost: " ..(t[2] and tonumber(t[2]) or 0) ..")",
color = 16774400
webhook = xxxxx
}
sendDiscordEmbed(embed)
Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-743
Compartilhar em outros sites

18 horas atrás, Angel.php disse:

é possivel colocar a weebhook direto no script ? estou fazendo varias logs, e seria legal separar cada um em um chat separado... 

EXEMPLO:

 

local embed = {
title = getPlayerName(cid),
description = "Criou um " .. name .. " (Boost: " ..(t[2] and tonumber(t[2]) or 0) ..")",
color = 16774400
webhook = xxxxx
}
sendDiscordEmbed(embed)

Sim e possivel

vai na lib e altera para

Spoiler
function sendDiscordEmbed(payloads, webhookUrl)
    local payload = {
        embeds = {
            payloads
        }
    }

    local headers = {
        ["Content-Type"] = "application/json"
    }

    local response_body = {}

    local res, code, response_headers = http.request{
        url = webhookUrl,
        method = "POST",
        headers = headers,
        source = ltn12.source.string(json.encode(payload)),
        sink = ltn12.sink.table(response_body)
    }

    if code ~= 200 and code ~= 204 then
        print("Erro ao enviar mensagem para o Discord. Código de status: " .. code)
    end
end

 

 

Agora vai no script e faz assim

local webhookUrl = "url da hook"
local embed = {
title = getPlayerName(cid),
description = "Criou um " .. name .. " (Boost: " ..(t[2] and tonumber(t[2]) or 0) ..")",
color = 16774400
}
sendDiscordEmbed(embed, webhookUrl)

 

  • Like 1
Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-746
Compartilhar em outros sites

6 horas atrás, JulianoZN disse:

Sim e possivel

vai na lib e altera para

  Ocultar conteúdo
function sendDiscordEmbed(payloads, webhookUrl)
    local payload = {
        embeds = {
            payloads
        }
    }

    local headers = {
        ["Content-Type"] = "application/json"
    }

    local response_body = {}

    local res, code, response_headers = http.request{
        url = webhookUrl,
        method = "POST",
        headers = headers,
        source = ltn12.source.string(json.encode(payload)),
        sink = ltn12.sink.table(response_body)
    }

    if code ~= 200 and code ~= 204 then
        print("Erro ao enviar mensagem para o Discord. Código de status: " .. code)
    end
end

 

 

Agora vai no script e faz assim

local webhookUrl = "url da hook"
local embed = {
title = getPlayerName(cid),
description = "Criou um " .. name .. " (Boost: " ..(t[2] and tonumber(t[2]) or 0) ..")",
color = 16774400
}
sendDiscordEmbed(embed, webhookUrl)

 



Funcionou <3, Agora outra duvida kkk eu criei no meu comando de createitem, porém em vez de aparecer o NOME do item, esta aparecendo o ID do item, consegue fazer pra puxar o nome do item? Se liga como esta
image.png.ca8ba5a85638feb48462f2d447fcb5ac.png


 

function onSay(cid, words, param, channel)
  if(param == '') then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parametro de comando necessario")
    return true
  end
 
  local t = string.explode(param, ",")
  local ret = RETURNVALUE_NOERROR
  local pos = getCreaturePosition(cid)
 
  local id = tonumber(t[1])
  if(not id) then
    id = getItemIdByName(t[1], false)
    if(not id) then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item cujo nome não existe.")
      return true
    end
  end
 
  local amount = 100
  if(t[2]) then
    amount = t[2]
  end
 
  local item = doCreateItemEx(id, amount)
  if(t[3] and getBooleanFromString(t[3])) then
    if(t[4] and getBooleanFromString(t[4])) then
      pos = getCreatureLookPosition(cid)
    end
 
    ret = doTileAddItemEx(pos, item)
  else
    ret = doPlayerAddItemEx(cid, item, true)
 
    local webhookUrl = "https://discord.com/api/webhooks/1160059832850726912/vHRBId4bSSAdovgn0egmM1unAmAWR7apfzRtXgJk6Yoe0MPQIav5euda6J90LCFgTaAd"
    local embed = {
    title = getPlayerName(cid),
    description = "Criou um " .. amount .. "x " .. item .. ".",
    color = 16774400
    }
    sendDiscordEmbed(embed, webhookUrl)
  end
 
  if(ret ~= RETURNVALUE_NOERROR) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nao foi possivel adicionar o item: " .. t[1])
    return true
  end
 
  doDecayItem(item)
  if(not isPlayerGhost(cid)) then
    doSendMagicEffect(pos, CONST_ME_MAGIC_RED)
  end
 
  return true
end
Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-751
Compartilhar em outros sites

  • 5 meses depois...

Eu tinha configurado tudo certinho a uns 6 meses atras, porém nao dei continuidade no meu projeto. Hoje comprei uma maquina nova e instalei tudo novamente dnv, porém qnd to ligando o servidor ta dando esse erro:


Essa é a unica weebhook q coloquei pra ser gerada, é quando o servidor liga

image.png.f4549c4d678ebc510346e2966e9dbf9a.png


Ele funcionava assim: image.png.cbdc47d0abad0bcaaaf258ded0c89f95.png


sabe oq pode ser?

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-1805
Compartilhar em outros sites

  • 2 semanas atrás...
Em 26/07/2023 em 12:18, gutinha disse:

Opa, meu primeiro tópico aqui, provavelmente não vai estar bem formatado mas é isso.

 

Bora lá!

Oq eu vou trazer é um script simples pra integrar um webhook do discord no seu servidor. Assim você pode enviar mensagens pro discord pelo servidor, por ex: Fzr um log de ações (Tal staff criou tal item etc)

 

1° Instalar o ltn12:

No windows eu não testei, então quem usar ai vai ter q se virar 😅

No linux é simples, digite no terminal:

luarocks install --server=https://luarocks.org/dev ltn12

Caso ele não reconheça o luarocks, é bem simples de instalar, só seguir o get started aqui: 

This is the hidden content, please

 

2° Criar o webhook no discord:

  Mostrar conteúdo oculto

Agora vamos no discord, no servidor em que você quer criar o webhook

Clique em Config. do servidor

image.png.5ea6b6115c6133be1fec4ff420ba0519.png

Depois em Integrações > Webhooks

image.png.83afd17577887e199eb909cb4b0a289e.png

Clique em novo webhook

image.png.297342711d28e0dd2b89ff7888f1ce38.png

Selecione o webhook criado

image.png.3092070110b8074a76b5452514081913.png

 

E aqui a gente copia o link e configura o webhook

image.png.2db5546ce34cec5bd1b50cf764310837.png

Salve o link porque vamos usar ele no próximo passo

 

Feito isso, agora vamos para a parte do servidor.

3° Criar o script:

Na pasta lib/ crie um arquivo chamado discord.lua e coloque o seguinte código:

  Mostrar conteúdo oculto
local http = require("socket.http")
local ltn12 = require("ltn12")

function sendDiscordEmbed(payloads)
    local webhookUrl = "UrlAqui"  -- Coloque a URL do seu webhook aqui

    local payload = {
        embeds = {
            payloads
        }
    }

    local headers = {
        ["Content-Type"] = "application/json"
    }

    local response_body = {}

    local res, code, response_headers = http.request{
        url = webhookUrl,
        method = "POST",
        headers = headers,
        source = ltn12.source.string(json.encode(payload)),
        sink = ltn12.sink.table(response_body)
    }

    if code ~= 200 and code ~= 204 then
        print("Erro ao enviar mensagem para o Discord. Código de status: " .. code)
    end    
end

 

 Feito isso já está funcionando, basta reiniciar o servidor e usar a função.

 

Vou deixar aqui um exemplo de uso bem simples.

Print de como ficaria:

image.png.defa0cd86ebbb587a36089e34f4c67d6.png

Código:

  Mostrar conteúdo oculto
local embed = {
title = getPlayerName(cid),
description = "Criou um " .. name .. " (Boost: " ..(t[2] and tonumber(t[2]) or 0) ..")",
color = 16774400
}
sendDiscordEmbed(embed)

Lembrando que o payload é dinâmico, então tem muito mais variáveis ai no meio. Pra quem quiser brincar e customizar, aqui tem um link do embed generator 

This is the hidden content, please
 ou 
This is the hidden content, please

Caso o seu script fique dando erro 301, siga esse passo a passo:

  Mostrar conteúdo oculto

Digite no terminal

luarocks install luasec

E no discord.lua adicione em baixo de local http = require("socket.http")

local ssl = require("ssl")

Feito isso, reinicie o servidor e tente novamente enviar a mensagem

 

⚠️atenção⚠️
Este tutorial é de autoria exclusiva do TibiaDevs e não autorizo sua publicação em nenhum outro fórum sem minha permissão. Caso desejem um tutorial semelhante em outro fórum, sugiro que o criem vocês mesmos. Respeitem o trabalho e esforço dedicados à criação deste conteúdo exclusivo.

 



é possivel gerar log geral do console? tudo que é feito é gerado do console aparecer em uma weebhoky? (Logico, qnd o server tiver online)

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-1857
Compartilhar em outros sites

  • 1 mês depois...

como é que envio uma mensagem no discord, para ser lida pelo servidor?

exemplo no discord
se eu escrever "event" (evento)


o servidor enviaria

/b evento?

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-2110
Compartilhar em outros sites

  • 1 mês depois...
Em 24/06/2024 em 08:13, Cesinhabd disse:

Alguém poderia me dar uma auxilio? Recompenso em R$

eu tenho um funcional so chamr

Link para o comentário
https://tibiadevs.com/forums/topic/6-webhook-com-discord-pelo-servidor/#findComment-2650
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...