I have got a problem with my temp ban system - I have done the first bit which is setting the ban which works fine but the problem is then the player then joins again in which it works for the player banned fine.

Here is the code - (its in ServerScriptServcie)

local ds = game:GetService('DataStoreService')
local banData = ds:GetDataStore('BanData')

local admin = {'CRAZYQUACKY84'}

local banTimes = {
	one_Day = 86400;
	three_Days = 259200;
	one_Week = 604800;
	
}

game.Players.PlayerAdded:Connect(function(player)
	local Success, Result =  pcall(function()
		return banData:GetAsync(tostring(player.UserId), 'BanData')
	end)
	
	if Success then
		if Result then
			if Result.BST + Result.BT > os.time() then
				warn('Ban is done')
				banData:RemoveAsync(player.UserId)
			else
				player:Kick('\n You are temporarily banned for violating Terms of Service.')
			end
		end
	end
end)

game.Players.PlayerAdded:Connect(function(plr)
	for _,v in pairs(admin) do
		if plr.Name == v then
			plr.Chatted:Connect(function(ban)
				local args = ban:split(' ')
				if args[1] == ':ban' then
					local plrToBan = game.Players:FindFirstChild(args[2])
					local banReason = args[3]
					local plrInputBan = args[4]
					
					if plrToBan then
						local Success, Error = pcall(function()
							if plrInputBan == 'one_day' then
								banData:SetAsync(tostring(plrToBan.UserId),{BST= os.time(), BT = banTimes.one_Day})
								plrToBan:Kick('\n You have been banned for 1 day. \n Enforcer: '..plr.Name..'\n Reason: '..banReason)
							elseif plrInputBan == 'three_day' then
								banData:SetAsync(tostring(plrToBan.UserId),{BSTe = os.time(), BT = banTimes.three_Days})
								plrToBan:Kick('\n You have been banned for 3 days. \n Enforcer: '..plr.Name..'\n Reason: '..banReason)
							elseif plrInputBan == 'one_week' then
								banData:SetAsync(tostring(plrToBan.UserId),{BST = os.time(), BT = banTimes.one_Week})
								plrToBan:Kick('\n You have been banned for 1 week. \n Enforcer: '..plr.Name..'\n Reason: '..banReason)
							end
						end)
						if not Success then
							warn('Not Successful.')
						end
					end
				end
			end)
		end
	end
end)

BST = BanStartTime BT = BanTime