Super-Nostalgia-Zone/Server/Scripts/HatGranter.server.lua

67 lines
1.6 KiB
Lua

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local itemData = ReplicatedStorage:WaitForChild("ItemData")
local hatData = require(itemData:WaitForChild("Hat"))
local grantHatToUser = Instance.new("BindableEvent")
grantHatToUser.Name = "GrantHatToUser"
grantHatToUser.Parent = ServerStorage
local authTable =
{
["1073469644"] = { ["96"] = true };
["1081616136"] = { ["97"] = true,
["98"] = true };
["2421080323"] = { ["100"] = true };
["2471146032"] = { ["101"] = true,
["102"] = true };
}
local playerDataGet = { Success = false }
pcall(function ()
playerDataGet = require(ServerStorage:WaitForChild("PlayerDataStore"))
end)
if not playerDataGet.Success then
warn("Failed to load PlayerData. HatGranter will not work.")
end
local playerData = playerDataGet.DataStore
local function onGrantHat(player,hatId)
local userId = player.UserId
if userId > 0 then
local auth = authTable[tostring(game.PlaceId)]
if auth then
local canGiveHat = auth[tostring(hatId)]
if canGiveHat and playerData then
local hatInfo = hatData[hatId]
local hatAsset = hatInfo.AssetId
local myData = playerData:GetSaveData(player)
local items = myData:Get("Items")
local loadout = myData:Get("Loadout")
local id = tostring(hatAsset)
if not items.Hat[id] then
items.Hat[id] = true
myData:Set("Items", items)
end
loadout.Hat = hatAsset
myData:Set("Loadout", loadout)
end
end
end
end
grantHatToUser.Event:Connect(onGrantHat)