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")