60 lines
1.8 KiB
Lua
60 lines
1.8 KiB
Lua
local HttpService = game:GetService("HttpService")
|
|
local HttpRbxApiService = game:GetService("HttpRbxApiService")
|
|
local StarterGui = game:GetService("StarterGui")
|
|
local Players = game:GetService("Players")
|
|
|
|
local LocalPlayer = Players.LocalPlayer
|
|
while not LocalPlayer do
|
|
Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
|
|
LocalPlayer = Players.LocalPlayer
|
|
end
|
|
|
|
local FriendingUtility = {}
|
|
FriendingUtility.__index = FriendingUtility
|
|
|
|
local MAX_FRIEND_COUNT = 200
|
|
|
|
local BaseUrl = game:GetService("ContentProvider").BaseUrl:lower()
|
|
BaseUrl = string.gsub(BaseUrl, "http:", "https:")
|
|
local FriendCountUrl = string.gsub(BaseUrl, "www", "friends") .. "v1/users/{userId}/friends/count"
|
|
|
|
function FriendingUtility:GetFriendCountAsync(userId)
|
|
local friendCount = nil
|
|
|
|
local wasSuccess, result = pcall(function()
|
|
local url = string.gsub(FriendCountUrl,"{userId}",tostring(userId))
|
|
return HttpRbxApiService:GetAsyncFullUrl(url)
|
|
end)
|
|
if not wasSuccess then
|
|
print(FriendCountUrl,"failed because", result)
|
|
return nil
|
|
end
|
|
|
|
result = HttpService:JSONDecode(result)
|
|
|
|
if result["count"] then
|
|
friendCount = result["count"]
|
|
end
|
|
|
|
return friendCount
|
|
end
|
|
|
|
function FriendingUtility:MaxFriendCount()
|
|
return MAX_FRIEND_COUNT
|
|
end
|
|
|
|
local PlayerFriendedEvent = Instance.new("BindableEvent")
|
|
local PlayerUnFriendedEvent = Instance.new("BindableEvent")
|
|
|
|
LocalPlayer.FriendStatusChanged:connect(function(player, friendStatus)
|
|
if friendStatus == Enum.FriendStatus.Friend then
|
|
PlayerFriendedEvent:Fire(player)
|
|
elseif friendStatus == Enum.FriendStatus.NotFriend then
|
|
PlayerUnFriendedEvent:Fire(player)
|
|
end
|
|
end)
|
|
|
|
StarterGui:RegisterGetCore("PlayerFriendedEvent", function() return PlayerFriendedEvent end)
|
|
StarterGui:RegisterGetCore("PlayerUnfriendedEvent", function() return PlayerUnFriendedEvent end)
|
|
|
|
return FriendingUtility |