Its just the modulescript
thats on noblox.js’s github.
local groups = {}
local module = {}
local setmetatable = setmetatable
local error = error
local wait = wait
local httpService = game:GetService'HttpService'
local postAsync = httpService.PostAsync
local getAsync = httpService.GetAsync
local jsonEncode = httpService.JSONEncode
local jsonDecode = httpService.JSONDecode
local base, key
local function encode (tab)
return jsonEncode(httpService, tab)
end
local function decode (tab)
return jsonDecode(httpService, tab)
end
local function request (url, method, suppress, data)
local body = method(httpService, url, data)
local success, response = pcall(decode, body)
local err
if success then
err = response.error
else
err = 'Response was not valid json, full body: '..body
end
if not err and suppress then
return true, response
elseif not err then
return response
elseif suppress then
return false, err
else
error(err)
end
end
local http = {
post = function (path, data, suppress)
if not data then
data = {}
end
data.key = key
return request(base..path, postAsync, suppress, encode(data))
end,
get = function (path, suppress)
return request(base..path, getAsync, suppress)
end
}
function groups.promote (group, userId)
return http.post('/promote/'..group..'/'..userId)
end
function groups.demote (group, userId)
return http.post('/demote/'..group..'/'..userId)
end
function groups.setRank (group, userId, rank)
return http.post('/setRank/'..group..'/'..userId..'/'..rank)
end
function groups.shout (group, message)
return http.post('/shout/'..group, {message = message})
end
function groups.post (group, message)
return http.post('/post/'..group, {message = message})
end
function groups.handleJoinRequest (group, username, accept)
local acceptString = accept and 'true' or 'false'
return http.post('/handleJoinRequest/'..group..'/'..username..'/'..acceptString)
end
function groups.getPlayers (group, rank, limit, online)
local job = http.post('/getPlayers/make/'..group..(rank and '/'..rank or '')..'?limit='..(limit and limit or '-2')..'&online='..(online and 'true' or 'false')).data.uid
local complete, response = false
repeat
wait(0.5)
local success
success, response = http.get('/getPlayers/retrieve/'..job, true)
if not success and response:match('$Response was not valid json') then
error(response)
elseif success then
complete = response.data.complete
end
until complete
return response
end
function module.message (userId, subject, message)
return http.post('/message/'..userId, {subject = subject, body = message})
end
function module.getBlurb (userId)
return http.get('/getBlurb/'..userId)
end
return function (domain, newKey, group)
local isString = (type(domain) == 'string')
if (not domain) or (not isString) or (isString and #domain <= 0) then
error('Url is required and must be a string greater than length 0')
end
isString = (type(newKey) == 'string')
if (not newKey) or (not isString) or (isString and #newKey <= 0) then
error('Key is required and must be a string greater than length 0')
end
base = 'http://'..domain
key = newKey
if group then
local isNumber = (type(group) == 'number')
if (not isNumber) or (group <= 0) then
error('If group is provided it must be a number greater than 0')
end
for name, func in next, groups do
module[name] = function (...)
return func(group, ...)
end
end
return module
end
for name, func in next, groups do
module[name] = func
end
return module
end