Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

OnUpdate() with data stores?

Asked by
lucas4114 607 Moderation Voter
8 years ago

Am I using OnUpdate() right? Because the code below doesn't print "Updating Messages" when I change the data store's value.

local MessageData = game:GetService("DataStoreService"):GetDataStore("test36Messages")
local PlayerKey = "user_"..script.Parent.Parent.Parent.UserId

local MessagesUpdated = MessageData:OnUpdate(PlayerKey, 
    function()
        print("Updating Messages")
        local data = game.ServerStorage.SAVEDDATA:FindFirstChild(script.Parent.Parent.Parent.Name)
        for i,v in pairs (data.Messages) do
            v:Destroy()
        end
        for number, message in pairs (MessageData:GetAsync(PlayerKey)) do
            local value = game.ServerStorage.messagefolder:Clone()
            value.Name = message["Name"]
            value.Text.Value = message["Text"]
            value.GiveReward.Value = message["GiveReward"]
            value.GiveReward.RewardType.Value = message["RewardType"]
            value.GiveReward.Reward.Value = message["Reward"]["Gold"]
            if message["Reward"]["Units"] ~= {} then
                for i, v in pairs (message["Reward"]["Units"]) do
                    local unit = Instance.new("StringValue")
                    unit.Name = v
                    unit.Value = v
                    unit.Parent = value.GiveReward.Reward
                end
            end
            value.Parent = data.Messages
        end
    end
)  
MessagesUpdated:disconnect()

Answer this question