Page 1 of 1

Mudlet Discord Webhook Support

Posted: Tue Oct 13, 2020 8:33 pm
by SynecticLabs
The function below will allow a Mudlet user to send a message to a Discord server via a webhook.

Code: Select all

function sendToDiscordWebhook(discord_username, avatarurl, message)
  local httpdone = registerAnonymousEventHandler('sysPostHttpDone', 
    function(event, rurl, response)
      if rurl == url then display(r) else return true end
    end, true)

  local httperror = registerAnonymousEventHandler('sysPostHttpError', 
    function(event, response, rurl)
      if rurl == url then display(r) else return true end
    end, true)

  local url = ""
  local data = {
    username = discord_username, 
    avatar_url = avatarurl,
    content = message
  }
  local header = {
    ["Content-Type"] = "application/json",
    --["Content-Length"] = data:len()
  }
  
  postHTTP(yajl.to_string(data), url, header)
  
  killAnonymousEventHandler(httpdone)
  killAnonymousEventHandler(httperror)
end
Place this into a script object, then insert your webhook endpoint into the url variable.

To send a message, you can do something akin to:

Code: Select all

sendToDiscordWebhook("MyBotName", false, "My boring message.")
Put this into a trigger to do fancy things like announcing kills, forwarding clan tells into your server, etc.

Enjoy!

Re: Mudlet Discord Webhook Support

Posted: Wed Nov 18, 2020 4:22 pm
by neongrey
hey, got this working but just wanted to leave this here for anyone else who tries to get this to work-- discord wants null, not false for the avatarurl, and you can also null out the bot name on the trigger too, like so:
Code: [show] | [select all] lua
sendToDiscordWebhook(null, null, "My Boring Message")

Re: Mudlet Discord Webhook Support

Posted: Fri Jan 01, 2021 9:19 pm
by XMODS
I did a mod of this, with embeds etc, and the package is here...
https://github.com/Xiija/MudletStuff/tr ... rd_Modules

screenshot
Image

Re: Mudlet Discord Webhook Support

Posted: Sat Jan 02, 2021 7:12 am
by seamer
Hi xmods, I'm having trouble with this... I have the Webhooks/integration properly, but it looks like each of the aliases is not functioning as expected.. I am able to use dmsg to send with fixing a period in the payload, but no matter what I try for auction/group I just see a blank line sent to discord.

For what its worth, the default dmsg function sends

Code: Select all

content  = ".\n \n"..msg
which just generates a period, a blank line, and then the message.

Any ideas?

Re: Mudlet Discord Webhook Support

Posted: Mon Jan 04, 2021 8:51 pm
by XMODS
Make suer & check that you aren't blocking embeds with settings?
local user, server, and channel all may have a setting for that.

The dmsg alias was set that way to make it easier to read,
if you want to change the dmsg alias, .. just set it to..

content = msg

Re: Mudlet Discord Webhook Support

Posted: Sun Jan 17, 2021 11:28 am
by SynecticLabs
Oh, this is great seeing this. Thanks for that. You've done a much better job at it.