Fix "Last Online" status #7
@ -66,11 +66,16 @@ client:on('messageCreate', function(message)
|
||||
local command=commands.command_list[cmdName]
|
||||
if command~=nil then
|
||||
if message.guild~=nil then
|
||||
local s,e=pcall(function()
|
||||
local tb
|
||||
local s,e=xpcall(function()
|
||||
command.exec({message=message,args=args,mentions=mentions,t={client,discordia,token}})
|
||||
end,function(err)
|
||||
tb = debug.traceback()
|
||||
return err
|
||||
end)
|
||||
if not s then
|
||||
message:reply('tripped : '..e:split('/')[#e:split('/')])
|
||||
print(e,tb)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -58,12 +58,13 @@ commands:Add('user',{},'user <username|mention|"me">', function(t)
|
||||
local name = user_info.name
|
||||
local displayName = user_info.displayName
|
||||
|
||||
-- local onlineStatus_info = API:GetUserOnlineStatus(id)
|
||||
|
||||
-- local LastLocation = onlineStatus_info.LastLocation
|
||||
-- table.foreach(onlineStatus_info.errors[1],print)
|
||||
-- local LastOnline = date.fromISO(onlineStatus_info.LastOnline):toSeconds()+(3600*5)
|
||||
|
||||
local onlineStatus_info = API:GetUserOnlineStatus(id)
|
||||
table.foreach(onlineStatus_info,print)
|
||||
|
||||
local LastLocation = onlineStatus_info.lastLocation
|
||||
if onlineStatus_info.userPresenceType==2 then LastLocation="Ingame" end
|
||||
local LastOnline = date.fromISO(onlineStatus_info.lastOnline):toSeconds()+(3600*5)
|
||||
|
||||
local badgeRequest = API:GetBadgesAwardedDates(id,Badges)
|
||||
local badgeData = badgeRequest.data
|
||||
|
||||
@ -91,8 +92,8 @@ commands:Add('user',{},'user <username|mention|"me">', function(t)
|
||||
{name='ID',value=id,inline=true},
|
||||
{name='Account Age',value=accountAge..' days',inline=true},
|
||||
{name='Created',value='<t:'..round(created)..':R>',inline=true},
|
||||
-- {name='Last Online',value='<t:'..round(LastOnline)..':R>',inline=true},
|
||||
-- {name='Last Location',value=LastLocation,inline=true},
|
||||
{name='Last Online',value='<t:'..round(LastOnline)..':R>',inline=true},
|
||||
{name='Last Location',value=LastLocation,inline=true},
|
||||
{name='Banned',value=isBanned,inline=true},
|
||||
{name='Description',value=description,inline=false},
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ local STRAFES_NET_RATELIMIMT = {
|
||||
}
|
||||
local remaining_timeout = 0
|
||||
local function request(method,url,headers,body,options)
|
||||
if type(body)=='table' then body=json.encode(body) end
|
||||
local headers,body=http.request(method,url,headers,body,options)
|
||||
local rbody=json.decode(body) or body
|
||||
local rheaders={}
|
||||
|
@ -7,6 +7,7 @@ local FIVEMAN_API_URL = 'https://api.fiveman1.net/v1/'
|
||||
local ROBLOX_API_URL = 'https://users.roblox.com/v1/'
|
||||
local ROBLOX_API_URL2 = 'https://api.roblox.com/'
|
||||
local ROBLOX_BADGES_API = 'https://badges.roblox.com/v1/'
|
||||
local ROBLOX_PRESENCE_URL = 'https://presence.roblox.com/v1/'
|
||||
local ROBLOX_THUMBNAIL_URL = 'https://thumbnails.roblox.com/v1/'
|
||||
local ROBLOX_GROUPS_ROLES_URL = 'https://groups.roblox.com/v2/users/%s/groups/roles'
|
||||
|
||||
@ -91,6 +92,7 @@ function formatTime(time) -- chatgpt THIS IS FOR SECONDS! NOT MILLISECONDS
|
||||
return string.format("%02d:%02d.%03d", minutes, seconds, milliseconds)
|
||||
end
|
||||
end
|
||||
function L1Copy(t,b) b=b or {} for x,y in next,t do b[x]=y end return b end
|
||||
|
||||
|
||||
-- [[ STRAFESNET API ]] --
|
||||
@ -260,13 +262,10 @@ function API:GetRobloxInfoFromUserId(USER_ID)
|
||||
end
|
||||
|
||||
function API:GetRobloxInfoFromUsername(USERNAME)
|
||||
if not USERNAME then return 'empty id' end
|
||||
local err, res = parseToURLArgs({username=USERNAME})
|
||||
if err then return err end
|
||||
local response,headers = http_request('GET', ROBLOX_API_URL2..'users/get-by-username'..res, API_HEADER)
|
||||
if not response.Id then return 'no user found' end
|
||||
local response2 = http_request('GET', ROBLOX_API_URL..'users/'..response.Id, API_HEADER)
|
||||
return response2
|
||||
if not USERNAME then return 'empty username' end
|
||||
local response,headers = http_request('POST', ROBLOX_API_URL..'usernames/users', API_HEADER, {usernames={USERNAME}})
|
||||
if not response.data[1] then return 'invalid username' end
|
||||
return self:GetRobloxInfoFromUserId(response.data[1].id)
|
||||
end
|
||||
|
||||
function API:GetRobloxInfoFromDiscordId(DISCORD_ID)
|
||||
@ -277,10 +276,12 @@ function API:GetRobloxInfoFromDiscordId(DISCORD_ID)
|
||||
return response2
|
||||
end
|
||||
|
||||
function API:GetUserOnlineStatus(USER_ID) -- https://api.roblox.com/users/1455906620/onlinestatus
|
||||
function API:GetUserOnlineStatus(USER_ID)
|
||||
if not USER_ID then return 'empty id' end
|
||||
local response,headers = http_request('GET', ROBLOX_API_URL2..'users/'..USER_ID..'/onlinestatus', API_HEADER)
|
||||
return response,headers
|
||||
local response1 = http_request('POST', ROBLOX_PRESENCE_URL..'presence/users', API_HEADER, {userIds={USER_ID}}).userPresences[1] --For LastLocation
|
||||
local response2 = http_request('POST', ROBLOX_PRESENCE_URL..'presence/last-online', API_HEADER, {userIds={USER_ID}}).lastOnlineTimestamps[1] --For a more accurate LastOnline
|
||||
L1Copy(response2, response1)
|
||||
return response1
|
||||
end
|
||||
|
||||
function API:GetBadgesAwardedDates(USER_ID,BADGE_LIST)
|
||||
|
Loading…
Reference in New Issue
Block a user