This repository has been archived on 2024-06-08. You can view files and clone it, but cannot push or open issues or pull requests.
RoHook/src/RoHook.lua

78 lines
1.7 KiB
Lua
Raw Normal View History

2020-11-01 16:53:00 +00:00
-- Norbunny
-- November 1, 2020
2020-11-02 13:41:50 +00:00
--[[
RoHook.new(url: string, username: string, avatar: string) - Creates a new RoHook instance
RoHook:setUsername(username: string) - Sets the webhook's username
RoHook:setAvatar(url: string) - Sets the webhook's avatar
RoHook:send(data: RichEmbed) - Sends a RichEmbed
RoHook:send(data: Message) - Sends a Message
]]
2020-11-01 16:53:00 +00:00
local httpService = game:GetService("HttpService")
local RoHook = {}
RoHook.__index = RoHook
function RoHook.new(url, username, avatar)
assert(url, "URL cannot be nil.")
local self = {
url = url,
username = username,
avatarUrl = avatar
}
2020-11-01 16:53:00 +00:00
setmetatable(self, RoHook)
2020-11-01 16:53:00 +00:00
return self
2020-11-01 16:53:00 +00:00
end
2020-11-01 18:40:36 +00:00
function RoHook:setUsername(username)
self.username = username
2020-11-01 16:53:00 +00:00
end
function RoHook:setAvatar(url)
2020-11-01 18:40:36 +00:00
self.avatarUrl = url
2020-11-01 16:53:00 +00:00
end
function RoHook:send(data)
2020-11-01 18:40:36 +00:00
local request = {
username = self.username,
avatar_url = self.avatarUrl
}
2020-11-01 16:53:00 +00:00
if data.ClassName == "RichEmbed" then
2020-11-01 18:40:36 +00:00
request.embeds = {data}
2020-11-01 16:53:00 +00:00
elseif data.ClassName == "Message" then
request.embeds = data.embeds or {}
request.content = data.content
end
local success, res = pcall(function()
local response = httpService:RequestAsync({
Url = self.url,
Method = "POST",
Headers = {
["Content-Type"] = "application/json"
},
Body = httpService:JSONEncode(request)
})
return response
end)
if not success then
error(string.format("POST request failed: %s", res))
else
assert(res.Success, string.format("Server replied with %s - %s", res.StatusCode, res.StatusMessage))
2020-11-01 16:53:00 +00:00
end
end
return RoHook